python - ¿Unittest permite realizar pruebas de caso único/suite a través de "setup.py test"?
unit-testing setuptools (4)
Soy un novato en lo que se refiere a pruebas de unidad de pitón, ¡pero estoy ansioso por aprender! Acabo de leer que python setup.py test
puede ejecutar todas las suites derivadas de clases unittest. Me pregunto si también puedo usar setup.py para ejecutar un solo paquete y / o un solo caso de prueba, tal vez agregando un modificador al comando anterior como python setup.py tests suitename
. Si es así, ¿puede indicarme algún documento o ejemplo?
prueba de setup.py
La prueba de setup.py no es tan flexible, pero aquí hay una alternativa:
El módulo unittest puede ejecutar métodos de prueba específicos.
De la Documentación en unittest.
El módulo unittest se puede usar desde la línea de comandos para ejecutar pruebas desde módulos, clases o incluso métodos de prueba individuales:
python -m unittest test_module1 test_module2
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method
Puede pasar a una lista con cualquier combinación de nombres de módulo y nombres de clase o método completamente calificados.
Puede ejecutar pruebas con más detalle (mayor verbosidad) al pasar el indicador -v:
python -m unittest -v test_module
Para obtener una lista de todas las opciones de línea de comandos:
python -m unittest -h
El setup.py test
es bastante limitado; solo admite permitirle especificar un módulo específico. La documentación de los modificadores de la línea de comandos se proporciona cuando usa el modificador --help
:
python setup.py test --help
Common commands: (see ''--help-commands'' for more)
[ ... cut ... ]
Options for ''test'' command:
--test-module (-m) Run ''test_suite'' in specified module
--test-suite (-s) Test suite to run (e.g. ''some_module.test_suite'')
[ ... more cut ... ]
por lo tanto, python setup.py test -m your.package.tests.test_module
limitaría la ejecución de las pruebas solo desde el archivo test_module.py
.
Lo que realmente hace el comando de test
es asegurarse de que su óvulo ya se haya creado, extraiga el valor test_suite
los test_suite
de setup()
, configure un cargador de prueba que entienda sobre los huevos comprimidos, luego ejecute la función unittest.main()
.
Si necesita ejecutar solo una prueba, ya ha creado su huevo, no lo está ejecutando con un huevo comprimido, entonces también puede usar la interfaz de línea de comandos de la unittest
prueba, que hace casi todo lo demás:
python -m unittest yourpackage.tests.TestClass.test_method
daría instrucciones a unittest
para ejecutar solo un método de prueba muy específico.
En caso de que use pytest para pruebas de unidad, puede ejecutar un archivo directamente evitando el archivo setup.py
.
Ejecutar todas las pruebas para mí es:
python setup.py test
Ejecutando una prueba específica:
pytest --pyargs path/to/test.py
Espero eso ayude.
(Sé que esta publicación ya es un poco antigua, pero vine aquí en busca de una forma de ejecutar las pruebas Pytest solo, pensé que podría ser de utilidad para alguien)
Todos ustedes están equivocados, la setup.py test
se puede usar con la opción -s
la misma manera que python -m unittest
hace:
cd root_of_your_package
python setup.py test -s tests.TestClass.test_method