Pregunta

I tienen los mismos archivos de origen (C y Obj-C) siendo compilados en dos objetivos: el ejecutable unidad de prueba y el producto real (que luego se integración probado). Los dos objetivos se acumulan en diferentes lugares, por lo que los archivos de objetos, .gcno y .gcda archivos están separados. No todos los archivos de código fuente se compilan en la prueba de la unidad, por lo que no existirán todos los objetos allí. Todos los archivos de código fuente se compilan en la compilación del producto.

¿Hay una manera de combinar los dos conjuntos de archivos .gcda para obtener la cobertura total para las pruebas unitarias y pruebas de integración (a medida que se ejecutan en la compilación del producto)?

Estoy usando lcov.

Mac OS X 10.6, GCC 4.0

Gracias!

¿Fue útil?

Solución

Dado que está utilizando lcov, usted debe ser capaz de convertir los archivos en archivos gcov .gcda lcov y fusionarlos con --add-tracefile lcov.

  

Desde página de manual: Añadir contenido del archivo de rastreo.   Especificar varios tracefiles utilizando el parámetro -a para combinar los datos de cobertura contenidos en estos archivos mediante la suma de los recuentos de ejecución de la prueba y el nombre combinaciones coincidentes.

Otros consejos

Finalmente he conseguido resolver mi problema por medio de lcov.

Básicamente lo que hice es la siguiente:

  • compilar la aplicación con las banderas -fprofile-arcs -ftest-coverage --coverage
  • Distribuir la copia de la solicitud a cada nodo.
  • Ejecutar la aplicación en cada nodo en paralelo. (Este paso genera en el directorio de la aplicación en el huésped acceder a la información de cobertura)
  • Let lcov hacer su trabajo:
    • lcov --directory src/ --capture --output-file coverage_reports/app.info
  • Generar la salida html:
    • genhtml -o coverage_reports/ coverage_reports/app.info

Espero que esto puede ser de ayuda a alguien.

Me fusionarla por lcov parámetros -d múltiples como abajo. Funciona.

lcov -c -d ./tmp/ -d ./tmp1/ -o ./tmp/coverage.info
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top