python - ¿Es posible excluir directorios de prueba de los informes de Cover.py?
testing software-quality (3)
Edit: Creo que ahora estoy de acuerdo con el comentario a continuación acerca de que no es una buena idea mezclar una prueba de su código de producción con una prueba de su código de prueba. No puedo eliminar una respuesta aceptada, así que la dejaré sin cambios.
** ¡ Por favor, anote mi respuesta! **
Es una buena idea ver la cobertura de sus pruebas, ya que puede indicar problemas. Si su código de prueba no se está ejecutando, ¡no tenía mucho sentido escribirlo!
El que siempre obtengo es cuando le doy a dos funciones de prueba unitarias el mismo nombre: agrego una nueva prueba varios meses después de la original y simplemente selecciono el mismo nombre. El marco unittest no se quejará de esto: una de las funciones oculta a la otra y simplemente no ejecuta una de las pruebas. Sin embargo, el informe detallado de la cobertura muestra el problema inmediatamente.
Si tiene otro código en sus pruebas que no se está ejecutando, entonces eso también puede apuntar a otros errores, aunque normalmente suele haber un par de líneas de código repetitivo que podrían no cubrirse según cómo se invocan las pruebas, así que no lo haga. No te obsesiones con llegar al 100%.
Y si tienes un código de prueba que realmente ya no es necesario, ¡siempre es bueno eliminarlo!
Soy una especie de novato con pruebas de unidad de python, y en particular cobertura.py. ¿Es conveniente 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 las tests/
directorio de los informes, así:
coverage html --omit=tests/ -d tests/coverage
Probé varias variaciones de ese comando, pero no pude obtener pruebas / excluirme por mi vida. Después de aceptar la derrota, comencé a preguntarme si tal vez los archivos de prueba deberían incluirse en el informe.
¿Alguien puede arrojar algo de luz sobre esto?
Cree el archivo .coveragerc
en la carpeta raíz de su proyecto e incluya lo siguiente:
[run]
omit = *tests*
coverage html --omit="*/test*" -d tests/coverage