python - debe pytest et al. ir a tests_require[] o extras_require{testing[]}?
setuptools setup.py (1)
Segun los docs
tests_require son paquetes adicionales que se obtienen cuando se usa el comando de prueba de setuptools . No están instalados en el sistema.
extras_require son paquetes adicionales opcionales agrupados por el nombre de la característica. La lista de paquetes se instala para usar esa función y hay varias maneras de instalarlos. Consulte ¿El pip maneja los requisitos adicionales de setuptools / distribuye fuentes basadas?
Mi interpretación
tests_require debe ser paquetes que se usan en las pruebas como numpy y no paquetes que se usan para realizar pruebas como pytest o nose . Las pruebas_require tendrían que ser movidas o copiadas a una función de "prueba" en extras_require al realizar pruebas fuera de setuptools .
Use extras_require para hacer un paquete de prueba como pytest opcional. Utilice setup_requires para requerirlo.
pytest y nose pueden integrarse con setuptools para aprovechar la conveniencia de tests_require , sin embargo, puede haber inconvenientes. La nariz advierte que los complementos pueden no estar disponibles cuando se ejecutan a través de setuptools .
Consulte Integración con setuptools / python setup.py test
/ pytest-runner
y el comando setuptools de nosetests .
Por ejemplo
Pruebas con integración setuptools:
setup.py
[...]
''version'': ''0.0.1'',
''install_requires'': [],
''tests_require'': [''numpy''],
''cmdclass'': {''test'': PyTest},
''extras_require'': {
''testing'': [''pytest''],
},
[...]
sh
(env) > python setup.py develop
(env) > easy_install pytest
(env) > python setup.py test -a "--pdb"
O, probar sin la integración de setuptools:
setup.py
[...]
''version'': ''0.0.1'',
''install_requires'': [],
''extras_require'': {
''testing'': [''pytest'', ''numpy''],
},
[...]
sh
(env) > pip install -e .[testing]
(env) > pytest.py --pdb
Estoy escribiendo un programa de python que usa py.test para las pruebas y ahora una prueba también depende del número. ¿Dónde en mi setup.py debo agregar esas dependencias?
Actualmente, la parte relevante de mi setup.py se ve algo como esto:
[...]
''version'': ''0.0.1'',
''install_requires'': [],
''tests_require'': [''pytest''],
''cmdclass'': {''test'': PyTest},
''extras_require'': {
''testing'': [''pytest''],
},
[...]
Tener pytest
dos veces ya se siente algo extraño y no estoy seguro de dónde agregar el adormecimiento.