Исключение каталога, модуля в nosetest python
Мы используем нос, чтобы обнаружить тесты и запустить их. Все тесты написаны в TestCase
совместимом режиме, так что любой тестовый бегун может запускать. Проблема в том, что у нас есть некоторые каталоги, которые не имеют никакого теста. Но тестовый бегун продолжает обнаруживать тест оттуда. Если в одном из этих каталогов много файлов, они застряли. Итак, как я могу исключить этот каталог?
В настоящее время я выполняю
nosetests --processes=10 --verbosity 2
Но есть каталог под названием scripts
, который требует времени для обнаружения тестов. Поэтому я хочу исключить его. Я попробовал
nosetests --processes=10 --verbosity 2 --exclude='^scripts$'
Но не повезло.
Ответы
Ответ 1
Существует специально для этой задачи плагин nose-exclude
:
nose-exclude - это плагин Nose, который позволяет легко указать каталоги, которые должны быть исключены из тестирования.
Среди других функций он вводит новый аргумент командной строки под названием exclude-dir
:
nosetests --processes=10 --verbosity 2 --exclude-dir=/path/to/scripts
Вместо передачи аргумента командной строки вы также можете установить переменную среды NOSE_EXCLUDE_DIRS
или установить конфигурационный ключ exclude-dir
в .noserc
или nose.cfg
файлах.
Ответ 2
Вы также можете использовать аргумент --ignore-files
для исключения определенных файлов. Поскольку это использует регулярные выражения, вы можете назвать свои файлы внутри вашей папки scripts/
, чтобы начать с определенного префикса, который затем можно использовать для соответствия в регулярном выражении.
# Exclude just one test file
nosetests your_package --ignore-files="tests_to_exclude\.py" -v
# Exclude all python scripts beginning with `testskip_`
nosetests your_package --ignore-files="testskip_.+\.py" -v
Смотрите: Документация по носу.