Загрузить светильники Django один раз? - PullRequest
0 голосов
/ 05 июля 2018

Я знаю, что этот вопрос задавался ранее, но я хотел узнать, есть ли более обновленное решение. Будет ли способ загрузить все мои приборы в setUp и очистить их после завершения всех испытаний?

Прямо сейчас я загружаю в свои приборы вот так ...

from django.test import TestCase
from django.core.management import call_command

class GlobalSetup(TestCase):

    def setUp(self):
        # Load fixtures
        call_command('loaddata', 'test_cfst.json', verbosity=0)
        call_command('loaddata', 'test_lmt.json', verbosity=0)
        call_command('loaddata', 'test_qt.json', verbosity=0)

class BaseTest(GlobalSetup):
    fixtures = [
        'test_cfst.json',
        'test_lmt.json',
        'test_qt.json'
        ]

    def setUp(self):
        super(BaseTest, self).setUp()

    def test_base(self):
        # Some random tests

В более новой версии django есть способ или лучший способ сделать это?

1 Ответ

0 голосов
/ 05 июля 2018

Я не уверен, что вы осведомлены или нет, но вы просто загружаете приборы, как показано ниже:

from django.test import TestCase
from myapp.models import Animal

class AnimalTestCase(TestCase):
    fixtures = ['mammals.json', 'birds']

    def setUp(self):
        # Test definitions as before.
        call_setup_methods()

    def test_fluffy_animals(self):
        # A test that uses the fixtures.
        call_some_test_code()

пример из документов

Так что вам не нужно писать GlobalSetup с call_command, как вы делали в своем текущем примере, который приводит к двойной загрузке приборов. потому что метод уже вызывается в setUpClass (см. эту ссылку )

...