test - Pruebas unitarias en Python
unittest python 3 (9)
¿Python tiene un marco de prueba unitaria compatible con el estilo de xUnit estándar del marco de prueba? Si es así, ¿qué es, dónde está y es bueno?
@Greg: PyUnit está incluido en la biblioteca estándar como unittest
Considera py.test . No exactamente análogo a NUnit, pero muy bueno, con características agradables que incluyen autodetección de prueba y un "Mire las pruebas y el código: cuando algo cambia, vuelva a ejecutar las pruebas que fallaron la última vez. Tan pronto como pasen todas las pruebas, cambie a ejecutar todas las pruebas cada vez que algo cambia ". opción.
Hay testoob, que es un conjunto de pruebas bastante completo. También xUnit, es decir, y tiene una buena opción de informes
Nunca usé xUnit, así que no puedo decir si los marcos son buenos / malos comparativamente, pero aquí hay un script que escribí que usa el marco de prueba unittest (para verificar que la API funcione como debería), y el doctest (para verificar el ejemplos que he dado trabajo)
Mi único problema es comprobar que algo plantea una excepción es un poco intrincado (hay que pasarle una función / lambda que plantea la excepción, en lugar de solo el comando en sí, como el resto del marco). Aparte de eso, hace lo debería, de manera confiable, y se ha incluido en la distribución por defecto de python durante bastante tiempo.
También está PyUnit, que podría ser lo que estás buscando.
Recomiendo Nose.
Después de la instalación simple y razonable, solo tiene que ejecutar "nosetests" en su carpeta de proyecto y Nose encontrará todas sus pruebas y las ejecutará. También me gusta la colección de complementos (cobertura, GAE, etc.) y la capacidad de llamar a Nose directamente desde mis scripts de Python.
la nariz parece ser la mejor combinación de flexibilidad y conveniencia. Ejecuta pruebas unitarias, doctests, cobertura (con una extensión) y pruebas py.test-like de un marco y lo hace admirablemente. Tiene suficiente popularidad como para que Komodo Edit haya realizado alguna integración IDE y no me sorprendería verlo en otro lado también.
Me gusta por una buena razón: casi siempre doctest antes de escribir pruebas más extensas en otro marco. Esto se debe a que, para las pruebas básicas, los doctests matan dos pájaros de un tiro. Obtendrá pruebas ejecutables (aunque son un poco torpes para escribir bien a veces), así como documentación de API y documentación interactiva al mismo tiempo. nose ejecutará estos con la extensión doctest incluida cuando use una opción de línea de comandos (--with-doctest).
Digo que esto proviene de py.test como mi favorito anterior. Si bien es genial, las pruebas de nariz son lo suficientemente similares a mí que no me lo pierdo, y me gusta la integración de las diversas metodologías de prueba bajo un mismo techo, por así decirlo. YMMV, pero recomiendo echarle un buen vistazo a la nariz antes de elegir otra. Si no está familiarizado con las pruebas de py.test, debe verlas también. Los encuentro excelentes porque generalmente están escritos de tal manera que se pueden depurar fácilmente sin el marco de prueba, lo que hace que un sistema menos complicado participe en la sesión de depuración. Me parece valioso por sí solo, mientras que, en mi opinión, también son más fáciles de escribir que las pruebas unittest.
Python tiene varios frameworks de prueba, incluyendo unittest
, doctest
y nose
. El más parecido a xUnit es unittest
, que está documentado en Python.org.
Recomiendo la nariz
Es el más Pythonic de los marcos de prueba de la unidad. El corredor de prueba ejecuta tanto pruebas documentales como pruebas unitarias, por lo que puede usar el estilo de prueba que desee.