Я настраиваю структуру каталогов для своего приложения Django для разделения функциональных и модульных тестов. Я использую нос в качестве тестового бегуна для моего проекта Django.python - Nose не обнаруживает тесты уровня пакета в Django
В корневом каталоге проекта Django, У меня есть папка под названием «тестами», что имеет такую структуру:
tests
├── __init__.py
├── functional
│ ├── __init__.py
└── unit
├── __init__.py
├── data.py
├── tests.py
Если я хочу запустить только модульные тесты, я не должен быть в состоянии использовать следующие из корня проекта:
$ nosetests tests.unit
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Как вы можете видеть, это не находит тесты в файле tests.py.
Однако, когда я бегу, используя структуру каталогов, тесты можно найти, как они должны быть:
$ nosetests tests/unit/
E
# .. Some errors I expected because settings are not initialized when called this way
-----------------
Ran 1 test in 0.001s
FAILED (errors=1)
Что мне не хватает? Моя основная проблема заключается в том, что у меня есть функция setup
в tests.unit.__init__.py
, которая должна быть вызвана для создания данных в тестовой БД для предстоящих тестов.
Благодаря
Возможно, вам нужно включить блок импорта в первый __init__? (просто бросая это там) – sihrc
@sihrc так не думает, так как я могу импортировать модуль unit.tests из того же каталога, используя командную строку python 'python -c 'import tests.unit'' – user1496984
вы пытаетесь запустить нос в подробном режиме? попробуйте использовать '-v' и' -vv', чтобы узнать, дают ли они какой-либо намек на обнаружение теста. – Bakuriu