Ответ 1
В соответствии с документами
tests_require - дополнительные пакеты, которые получаются при использовании setuptools test. Они не установлены в системе.
extras_require - дополнительные дополнительные пакеты, сгруппированные по имени функции. Список пакетов установлен для использования этой функции, и есть несколько способов их установки. См. Помогает ли pip обрабатывать extras_requires из setuptools/распространять источники на основе?
Моя интерпретация
tests_require должны быть пакеты, которые используются в тестах, таких как numpy, а не пакеты, которые используемый для проведения тестирования, например pytest или nose. tests_require необходимо будет переместить или скопировать в функцию тестирования в extras_require при тестировании вне setuptools.
Используйте extras_require, чтобы сделать тестовый пакет, такой как pytest, необязательным. Используйте setup_requires, чтобы потребовать его.
pytest и нос могут быть интегрированы с setuptools, чтобы воспользоваться удобством tests_require, однако могут быть недостатки. нос предупреждает, что плагины могут быть недоступны при запуске setuptools.
См. Интеграция с setuptools/ python setup.py test
/pytest-runner
и команда nosetests setuptools.
Например
Тестирование с помощью интеграции setuptools:
setup.py
[...]
'version': '0.0.1',
'install_requires': [],
'tests_require': ['numpy'],
'cmdclass': {'test': PyTest},
'extras_require': {
'testing': ['pytest'],
},
[...]
ш
(env) > python setup.py develop
(env) > easy_install pytest
(env) > python setup.py test -a "--pdb"
Или тестирование без интеграции setuptools:
setup.py
[...]
'version': '0.0.1',
'install_requires': [],
'extras_require': {
'testing': ['pytest', 'numpy'],
},
[...]
ш
(env) > pip install -e .[testing]
(env) > pytest.py --pdb