Где нос.коллектор ищет тесты?
Я хочу использовать nose.collector
в качестве набора тестов для setuptools, как описано здесь. Мой источник пакета живет в mypackage/src
, и у меня есть тесты в mypackage/tests
. У меня есть setup.py
, который выглядит так:
import setuptools
setuptools.setup(
name='mypackage',
version='1.2.3',
package_dir={'': 'src'},
packages=setuptools.find_packages('src'),
tests_require=['nose'],
test_suite='nose.collector',
provides=setuptools.find_packages('src'),
)
Однако, когда я запускаю python setup.py test
, он ничего не тестирует:
$ python setup.py test
running test
running egg_info
writing src/mypackage.egg-info/PKG-INFO
writing top-level names to src/mypackage.egg-info/top_level.txt
writing dependency_links to src/mypackage.egg-info/dependency_links.txt
reading manifest file 'src/mypackage.egg-info/SOURCES.txt'
writing manifest file 'src/mypackage.egg-info/SOURCES.txt'
running build_ext
----------------------------------------------------------------------
Ran 0 tests in 0.002s
OK
Как я могу сказать nose
, где искать тесты? До сих пор я делал nosetests -d tests
, который отлично работает. Но я хотел бы изменить использование setuptools
, чтобы я мог следовать соглашению python setup.py test
.
Ответы
Ответ 1
из документов
При запуске в setuptools вы можете настроить параметры носа с помощью переменные среды, подробно описанные в сообщении об использовании nosetests script, или файлы конфигурации setup.cfg, ~/.noserc или ~/.nose.cfg.
http://nose.readthedocs.org/en/latest/setuptools_integration.html
Ответ 2
В setup.cfg
вы можете указать это с параметром tests
, например:
[nosetests]
tests=mypackage/tests
Но nose
имеет другие проблемы с setup.py
. Чтобы преодолеть это, вы также можете переопределить команду test
:
[aliases]
test=nosetests mypackage/tests
Ответ 3
Исправить их с помощью chmod -x $(find tests/ -name '*.py')