with tutorial the framework espaƱol applications python unit-testing testing python-unittest test-reporting

python - tutorial - the django project



Muestra los resultados de la prueba de Python en una buena forma tabular (3)

Eche un vistazo al juicio de Twisted .

De forma predeterminada, usa el TreeReporter prueba TreeReporter , que se ve así:

Tiene lo siguiente:

  • Es un informe de línea de comando, solo ejecuta:

    trial test_name.py

  • Salida de color: rojo para el fracaso, verde para el éxito

  • El informe usa una estructura similar a un árbol. Muestra las pruebas en los TestCases a los que pertenecen, lo que le permite recorrer rápidamente los resultados para encontrar una prueba específica. (Aunque proporciona un par de informes más).

  • También incluye una biblioteca de prueba, derivada de unittest.TestCase de Python. unittest.TestCase . Puede usar esta biblioteca subclasificando twisted.trial.unittest.TestCase . Esto proporciona algunos más métodos de aserción .

  • Incluye la opción de generar cobertura de extracto para sus pruebas.

Estoy escribiendo una herramienta Pythonic que valida la corrección de un cierto sistema. Cada validación está escrita como una prueba de unittest Python, y el informe se ve así:

test_exclude_list_not_empty (__main__.TestRepoLists) Assert the the exclude list is not empty ... ok test_include_list_not_empty (__main__.TestRepoLists) Assert the the include list is not empty ... ok test_repo_list_not_empty (__main__.TestRepoLists) Assert the the repo list is not empty ... ok

En mi opinión, este formato es difícil de leer, especialmente para los que no son Python. ¿Hay algún generador de informes que pueda generar un informe en una buena forma tabular, por ejemplo:

+----------------------------------------------------------------+-----------+ | Test | Status | +----------------------------------------------------------------+-----------+ | Assert the the exclude list is not empty | OK | | Assert the the include list is not empty | OK | | Assert the the repo list is not empty | OK | | All the items in the include list should be in the repo list | OK | +----------------------------------------------------------------+-----------+

Aclaración El conjunto de pruebas se ejecuta en un terminal remoto, por lo que prefiero las herramientas de informes de línea de comando.


Esto no es exactamente lo que está preguntando, pero hay varias opciones para tener una salida de prueba legible allí:

  • HTMLTestRunner genera informes de prueba HTML fáciles de usar en forma de tabla. Aquí hay un informe de muestra.
  • complemento nose-html-output para corredor de prueba de nariz
  • unittest-xml-reporting - Corredor de prueba basado en PyUnit con JUnit como informes XML
  • nose con la opción --with-xunit producirá informes de estilo junit xml que son fáciles de leer y convertir

Ver también:

Si desea ver los resultados de las pruebas en forma de tabla en la consola de todos modos, creo que una buena idea sería escribir su propio plugin o runner de prueba basado en unittest.TestProgram como se hizo en HTMLTestRunner .

Espero que ayude.


Me gustaría agregar mi información como comentario en la respuesta de alecxe, pero no tengo suficiente reputación para eso.

En el caso de que alguien aún esté buscando una respuesta, bifurqué HTMLTestRunner en un TestRunner simple, que tiene un resultado tabular, de color y amigable con el terminal. Esta es una muestra de su resultado:

No tengo suficiente reputación para publicar imágenes, por lo tanto, aquí hay un enlace: http://i.stack.imgur.com/upSC0.png

El código fuente está en https://gist.github.com/viniciusd/73e6eccd39dea5e714b1464e3c47e067

Lo volveré a escribir desde cero pronto, pero manteniendo el formato de salida.