2017-05-26 1 views
3

De l'llvm-cov docs:Comment filtrer les fichiers dans le rapport de couverture de code llvm-cov?

llvm-cov show [options] -instr-profile PROFILE BIN [-object BIN,...] [[-object BIN]] [SOURCES]

La commande show LLVM-CoV montre la ligne par la couverture de la ligne des binaires BIN, ... en utilisant le profil de données de profil. Il peut éventuellement être filtré pour afficher uniquement la couverture des fichiers répertoriés dans SOURCES.

J'utilise la commande suivante:

xcrun llvm-cov show -instr-profile "${PROFDATA}" "${BINARY}" codecov_source_files > Coverage.report

codecov_source_files est un fichier avec cette ligne:

*Router.swift

Donc, fondamentalement, ce que je veux est le rapport pour contenir uniquement des fichiers avec h le suffixe: Router.swift

Mais je reçois un Coverage.report avec toutes les classes du projet.

Qu'est-ce qui me manque?

Répondre

3

Il est mal rédigé, mais SOURCES est en réalité une liste de noms de fichiers, pas le nom d'un fichier contenant une liste de noms de fichiers.

Ils doivent être les chemins d'accès aux fichiers source réels sur le disque. Il ne prend pas en charge les caractères génériques ou regex malheureusement. Edit: En lisant la source, j'ai découvert que vous pouvez également lister les répertoires comme SOURCES et il se recurve en eux. Il existe également une option non documentée -dump-collected-paths qui imprime les fichiers correspondant à SOURCES.

+0

Merci d'avoir découvert que 'SOURCES' pourrait être un dossier. Cela devrait vraiment être documenté. Voici un exemple complet de ceci pour d'autres qui ont été testés avec Clang 4.0. Cela montrera seulement la couverture des fichiers dans le dossier 'src_dir'. 'llvm-cov show -format = html -instr-profile = default.profdata mon_exe src_dir /> coverage.html' – phoenix

+1

Vous pouvez également utiliser' -output-dir = PATH' au lieu de '> coverage.html'. Je ne crois pas que ce dernier vous donne des sorties par fichier. – Timmmm

+0

Merci @Timmmm, l'argument '-output-dir' est BEAUCOUP plus agréable! – phoenix