#django #code-coverage #nose
#django #код-покрытие #нос
Вопрос:
У меня насморк и проблемы с освещением в приложении Django.
У меня есть структура, которая выглядит примерно так:
app
..__init__.py
..tests.py
..views.py
..models.py
..urls.py
..admin.py
Теперь, если я проведу обычные manage.py test app
тесты в tests.py запуск без каких-либо проблем. Однако, когда я подключаю nose в качестве набора тестов, тесты перестают выполняться (он находит и выполняет 0 тестов).
Это не проблема с конфигурацией носа, так как у меня точно такая же конфигурация успешно работает в других, аналогично структурированных приложениях django.
Теперь, если я беру tests.py
файл и изменяю его в каталог с именем «tests» и помещаю в него все эти тесты __init__.py
, тесты выполняются с использованием nose.
Чтобы еще больше усложнить ситуацию, когда эти тесты выполняются как __init__
файл, отчет о покрытии показывает только покрытие на admin.py
, __init__.py
, и models.py
, но он пропускает admin.py
и views.py
. Как указано выше, это не проблема конфигурации nose, поскольку у меня есть пакет, работающий включительно с другими приложениями с аналогичной структурой, и он работает так, как ожидалось.
Какие-нибудь подсказки? Я бьюсь головой об стену над этим…
Комментарии:
1. Одна вещь, которую я заметил: покрытие игнорирует некоторые модули, если вы не импортировали их непосредственно из своих тестов. Вероятно, покрытие игнорирует все те модули, которые не были импортированы до начала тестов (исключить пакеты — папку с __init__.py ), но некоторые из них могут быть автоматически импортированы django-nose или что-то в этом роде.
Ответ №1:
Вы пытались заставить django_nose запускать определенные тесты, указав аргумент с именем —tests ? Может быть, один из них будет работать:
python manage.py test --tests=tests
python manage.py test --tests=app.tests
python manage.py test --tests=app.tests:MyUnitTestClass