Покрытие Python, используемое в Django, выполняется слишком долго, даже если оно запущено с опцией флага --source

Я использую пакет Python в сочетании с фреймворком тестирования Django и иногда хочу протестировать только одно приложение/каталог/пакет, указанный в опции покрытия --source.

coverage run --source='custom_auth' manage.py test custom_auth.tests.TestAuth.test_authentication --keepdb

Является ли эта команда правильным способом для запуска только одного теста? Я также использую команду --keepdb, чтобы игнорировать повторное создание базы данных. Тест выполняется за 0,147 с, но что-то происходит за/перед тестом, и требуется около 3-5 минут, чтобы начать выполнение теста.

Другой способ, который может быть легче запомнить, заключается в том, чтобы помечать свои тесты

from django.test import tag

class Tests(TestCase):


    @tag('eu')
    def test_001_default(self):        
    ...
    @tag('eu','invoice')
    def test001_invoice(self):
    ...
    @tag('eu','shipment', 'slow')
    def test_001_shipment(self): 
    ...  

Тогда

./manage.py test --keepdb whatever.tests --tag=eu

или

./manage.py test --keepdb whatever.tests.name.Tests --tag=eu --exclude-tag=slow

etc.

Вернуться на верх