python setuptools setup.py

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.