Guide détaillé sur l'utilisation de gcov avec CMake/CDash?
Je suis en utilisant CMake avec mon projet et de définir un cdash serveur continue/tous les soirs bâtiment. Tout fonctionne bien et la mise en place d'un crontab, nous avons horaire/nightly build de test/résultats téléchargés sur notre cdash serveur automatiquement.
Ma prochaine étape est d'ajouter la couverture de test, rapport à la construction. - Je trouver le document ici http://www.cmake.org/Wiki/CTest:Coverage mais franchement c'est un peu loin d'un guide pratique.
Actuellement j'ai ajouté l'indicateur est requis (au lieu de -fprofile-arcs -ftest-coverage
, je trouve --coverage
mieux), le processus de compilation génère .gcno fichiers. Mais là je suis coincé. La commande
make NightlyCoverage
ne semble pas faire quoi que ce soit. Quelqu'un pourrait-il me dire quel est le prochain à faire? Le résultat que je veux, est de faire make NightlyCoverage
, la couverture des rapports sont générés et envoyés vers cdash serveur.
Vous devez vous connecter pour publier un commentaire.
J'ai été en utilisant https://github.com/bilke/cmake-modules/blob/master/CodeCoverage.cmake avec succès.
Juste suivi les directives de l': ajouté les fichiers de mon
CMAKE_MODULE_PATH
répertoire, a ajoutédans mon
CMakeLists.txt
. J'ai également ajouté manuellementgcov
comme une dépendance de ma cible:Avec cela, je viens de type
et je reçois le rapport html dans le
coverage
répertoire de mon arbre de construction.CodeCoverage.cmake
fichier (ou passer par l'intermédiaire d'une variable), mis en ligne 145, le--remove
option de lcov.GCOV_PATH
variable. Voir la ligne 71 de github.com/bilke/cmake-modules/blob/master/CodeCoverage.cmakemake my_project_coverage
œuvres?CodeCoverage.cmake
ajoute une cible personnalisée, mais dans mon expérience, ceux qui ne sont mises en subdir makefiles qui est très gênant... Est-il une astuce à partager?setup_target_for_coverage
est incorrect; il devrait êtresetup_target_for_coverage(NAME ${PROJECT_NAME} ....
; (j'ai édité la réponse, mais il a été rejeté).J'ai mis en place mon projet 'foo' de la manière suivante. Copié le fichier cmake de la https://github.com/bilke/cmake-modules/blob/master/CodeCoverage.cmake à un sous-répertoire 'cmake_modules'. Dans le CMakeLists.txt fichier après le
add_executable(foo ...)
j'ai ajouté ce qui suit:Après cmake, la cible à l'
faire
faire foo_coverage
Ouvrir le rapport avec index.html fichier dans le foo_coverage dossier dans le dossier de création
- Je utiliser
gcovr
de faire un GCC Rapport de Couverture de Code sansCodeCoverage.cmake
:gcovr -r . --html --html-details -o example-html-details.html