Это, вероятно, горячо оспариваемая тема, но я бы посоветовал вам отделить свои тесты от своих модулей. Настройте что-то вроде этого ...
Используйте setup.py
для их установки в системный путь (или вы можете изменить переменные среды, чтобы избежать необходимости в шаге "установки").
foo/
module1.py
module2.py
subpackage1/
__init__.py
moduleA.py
moduleB.py
Теперь любой скрипт Python в любом месте может получить доступ к этим модулям, вместо того, чтобы искать их в локальном каталоге. Отложите все свои тесты в сторону, как это:
tests/
test_module1.py
test_module2.py
test_subpackage1_moduleA,py
test_subpackage2_moduleB.py
Я не уверен насчет вашей команды nosetests
, но теперь, когда все ваши тесты находятся в одном каталоге, стало намного проще написать скрипт-обертку, который просто импортирует все остальные тесты в тот же каталог. Или, если это невозможно, вы можете, по крайней мере, обойтись простым циклом bash
, который получает ваши тестовые файлы один за другим:
#!/bin/bash
cd tests/
for TEST_SCRIPT in test_*.py ; do
nosetests -m $TEST_SCRIPT
done