Pregunta

Soy una especie de novato con pruebas de unidad de python, y en particular cobertura.py. ¿Es deseable que los informes de cobertura incluyan la cobertura de sus archivos de prueba reales?

Aquí hay una captura de pantalla de mi informe HTML como ejemplo.

Puede ver que el informe incluye tests / test_credit_card . Al principio intentaba omitir el directorio tests / de los informes, así:

coverage html --omit=tests/ -d tests/coverage

Probé varias variaciones de ese comando pero pude no durante toda mi vida obtener las pruebas / excluidas. Después de aceptar la derrota, comencé a preguntarme si tal vez se supone que los archivos de prueba se incluirán en el informe.

¿Alguien puede arrojar algo de luz sobre esto?

¿Fue útil?

Solución

  

Editar: creo que ahora estoy de acuerdo con el comentario a continuación sobre que no es bueno   idea de mezclar una prueba de su código de producción con una prueba de su prueba   código. No puedo eliminar una respuesta aceptada, así que la dejaré sin cambios.

     

** ¡Por favor vota mi respuesta! **


Es una buena idea ver la cobertura de sus pruebas, ya que puede señalar problemas. ¡Si su código de prueba no se está ejecutando, entonces no tenía mucho sentido escribirlo!

El que siempre obtengo es cuando le doy el mismo nombre a dos funciones de prueba de unidad: agrego una nueva prueba varios meses después del original y simplemente elijo el mismo nombre. El framework unittest no se quejará de esto: una de las funciones oculta la otra y simplemente no ejecutará una de las pruebas. Sin embargo, el informe detallado de cobertura muestra el problema de inmediato.

Si tiene otro código en sus pruebas que no se está ejecutando, eso también puede apuntar a otros errores, aunque a menudo hay un par de líneas de código repetitivo que pueden no cubrirse dependiendo de cómo se invoquen las pruebas, así que no te obsesiones con llegar al 100%.

Y si tiene un código de prueba que realmente ya no se necesita, ¡siempre es bueno eliminarlo!

Otros consejos

cobertura html --omit = " * / test * " -d pruebas / cobertura

Cree el archivo .coveragerc en la carpeta raíz del proyecto e incluya lo siguiente:

[run]
omit = *tests*

También puede especificar explícitamente en qué directorio tiene el código que desea cobertura en lugar de decir qué cosas omitir. En un archivo .coveragerc , si el directorio de interés se llama demo , esto se ve como

[run]
source = demo
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top