proyectos ejemplos python unit-testing python-unittest coverage.py

python - ejemplos - django



¿Cómo hago para que la cobertura incluya archivos no probados? (2)

Añadir --source=. a la línea de ejecución de coverage . Limitará el enfoque al directorio actual y buscará archivos .py que no se ejecutaron en absoluto.

Acabo de comenzar a escribir algunas pruebas de unidad para un proyecto de python que tengo usando unittest y coverage . Actualmente solo estoy probando una pequeña proporción, pero estoy tratando de calcular la cobertura del código

Realizo mis pruebas y obtengo la cobertura usando lo siguiente

python -m unittest discover -s tests/ coverage run -m unittest discover -s tests/ coverage report -m

El problema que tengo es que la coverage me dice que tengo un 44% de cobertura de código y solo contando los archivos que:

  1. se probaron en las pruebas unitarias (es decir, faltan todos los archivos que no se probaron y no están en la cobertura general)

  2. estaban en las bibliotecas en el entorno virtual y la cobertura de código de las pruebas reales también. ¿Seguramente no debería estar incluyendo las pruebas reales en los resultados?

Además, dice que los archivos que realmente se prueban en estas pruebas unitarias solo tienen las primeras líneas probadas (que en la mayoría de los casos son las declaraciones de importación)

¿Cómo obtengo una cobertura de código más realista o es así como debe ser?


Si usa la nose como un ejecutor de pruebas en su lugar, el complemento de cobertura que proporciona

--cover-inclusive Include all python files under working directory in coverage report. Useful for discovering holes in test coverage if not all files are imported by the test suite. [NOSE_COVER_INCLUSIVE] --cover-tests Include test modules in coverage report [NOSE_COVER_TESTS]