Question

J'ai les mêmes fichiers source (C et Obj-C) étant compilées en deux cibles: l'exécutable de test unitaire et le produit réel (qui obtient ensuite l'intégration testée). Les deux cibles construisent dans des endroits différents, de sorte que les fichiers objet, .gcno et .gcda fichiers sont séparés. Tous les fichiers source sont compilés dans le test unitaire, donc pas tous les objets seront là existent. Tous les fichiers source sont compilés dans la version du produit.

Est-il possible de combiner les deux ensembles de fichiers .gcda pour obtenir la couverture totale pour les tests unitaires et tests d'intégration (comme ils sont exécutés sur la version du produit)?

J'utilise lcov.

Mac OS X 10.6, GCC 4.0

Merci!

Était-ce utile?

La solution

Puisque vous utilisez lcov, vous devriez être en mesure de convertir les fichiers .gcda gcov en fichiers lcov et les fusionner avec lcov --add-tracefile.

  

De manpage: Ajouter le contenu de tracefile.   Spécifiez plusieurs tracefiles à l'aide du commutateur -a pour combiner les données de couverture contenues dans ces fichiers en ajoutant compte d'exécution pour le test correspondant et les combinaisons de noms de fichiers.

Autres conseils

Enfin j'ai réussi à résoudre mon problème au moyen de lcov.

En fait ce que je l'ai fait est le suivant:

  • compilez l'application avec les drapeaux -fprofile-arcs -ftest-coverage --coverage
  • Distribuer la copie de la demande à chaque noeud.
  • Exécuter l'application dans chaque noeud en parallèle. (Cette étape génère dans le répertoire de l'application dans l'hôte d'accès les informations de couverture)
  • Soit lcov faire son travail:
    • lcov --directory src/ --capture --output-file coverage_reports/app.info
  • Générer la sortie html:
    • genhtml -o coverage_reports/ coverage_reports/app.info

J'espère que cela peut être utile à quelqu'un.

Je fusionner par des paramètres lcov plusieurs -d comme ci-dessous. Il fonctionne.

lcov -c -d ./tmp/ -d ./tmp1/ -o ./tmp/coverage.info
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top