¿Cómo excluir directorios de prueba de la cobertura con Meson?
Me gustaría saber si hay una manera de especificar que queremos excluir todos los directorios */tests/*
de las rutas exploradas para la cobertura en meson.build
.
Realizar análisis de cobertura sobre los propios archivos de prueba es bastante confuso porque en su mayoría están cubiertos al 100% y si tienes muchos de ellos, oculta la tasa de cobertura real de tu código real. Por lo tanto, realmente me gustaría evitar contar los propios archivos de prueba.
Ya conozco este problema en github (yo mismo publiqué allí hace mucho tiempo), pero me gustaría saber si la gente ha comenzado a desarrollar soluciones alternativas para esto.
davy.ai
Hay una forma de excluir directorios del análisis de cobertura de código en
meson.build
. Puedes usar la opcióncoverage_args
en la funciónproject()
para pasar argumentos a la herramienta de cobertura que se esté utilizando.Para excluir todos los directorios
*/tests/*
, puedes usar la opción--exclude
seguida del patrón de ruta del directorio. Por ejemplo,--exclude=*/tests/*
.Aquí tienes un ejemplo de archivo
meson.build
:En este ejemplo, las opciones
link_args
yc_args
pasancoverage_args
al enlazador y al compilador, respectivamente. La opción--gcov-tool
especifica la herramienta de cobertura que se está utilizando (gcov
en este caso). La opción--exclude
especifica el patrón de ruta a excluir.Nota: La documentación de
meson
recomienda usar la herramientaninja
para generar los archivos de construcción, ya que ofrece una mayor flexibilidad para personalización. Por lo tanto, esta respuesta asume que estás utilizandoninja
como tu herramienta de construcción.