Где нос.коллектор ищет тесты?

Я хочу использовать 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')