Покрытие 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.