La couverture de code Delphi est un outil de couverture de code simple pour Delphi qui crée des rapports de couverture de code basés sur des fichiers de carte détaillés.
Veuillez également consulter ce projet car il ajoute un assistant à l'ide Delphi pour aider à créer une configuration et à lancer la couverture de code Delphi.
Le projet que vous souhaitez exécuter un rapport de couverture de code doit avoir une configuration "débogage" qui génère un fichier de carte détaillé.
La couverture du code Delphi ne mesure actuellement que la "couverture linéaire", c'est-à-dire qu'elle suivra chaque ligne pour laquelle le code a été généré et le marquera s'il a été exécuté.
Pour les applications qui utilisent des bibliothèques de packages Borland (qui sont essentiellement des DLL) ou des DLL externes, DCC tentera de charger un fichier .map pour chaque DLL et s'il existe et les unités de ces bibliothèques font partie des unités couvertes, la couverture de code s'étendra sur la DLL / BPL chargée dans le cadre de la demande. Le fichier .map doit exister dans le même répertoire que la DLL qui a été chargée.
Téléchargez la dernière version, dézip le fichier et placez-le par exemple dans votre répertoire de Delphi Installations "bin" ou quelque part où il se trouve dans le "chemin".
Tous les paramètres comprennent également les variables d'environnement dans le style par lots (par exemple Windir%, etc.) Si un fichier est utilisé pour les répertoires source (voir -spf ), il existe également des variables d'environnement. Il est possible d'exclure des unités spécifiques dans le fichier des unités (voir -uf ) en ajoutant un "!" Avant le nom de l'unité.
Ouvrez une invite de ligne de commande dans le répertoire où se trouve votre application et exécutable compilés.
Type: CodeCoverage -m TestApp.map -e TestApp.exe -u TestUnit TestUnit2 -xml -html
En raison des fonctionnalités de langue plus récentes utilisées, un compilateur un peu plus récent est requis. Le projet est connu pour ne pas prendre en charge Delphi XE2. XE3 fonctionnera probablement. Le développement principal se fait avec les versions 10.x.
-html comme paramètre)Pour chaque unité, il y aura une unité.html avec un résumé de la couverture, suivie de la source marquée. Les lignes vertes étaient couvertes. Les lignes rouges n'étaient pas couvertes. Les autres lignes n'ont pas eu de code généré pour cela. Il existe également un fichier CodeCoverage_Summary.html qui résume la couverture et a des liens vers les rapports d'unité générés.
-xml en tant que paramètre)Un rapport XML récapitulatif appelé codecoverage_summary.xml est généré dans le répertoire de sortie qui est compatible avec la sortie XML d'EMMA. Utilisez en combinaison avec les commutateurs «-xmllines» et «-xmlgenerrics» pour une couverture de code détaillée par ligne.
-emma ou -emma21 comme paramètre)Il est désormais possible de créer une sortie compatible EMMA qui permet à l'utilisation d'Emma de fusionner plusieurs exécutions de couverture de code ainsi que d'utiliser EMMA pour générer des rapports.
DCC est compatible avec Delphi jusqu'à 10.4.2, à la fois 32 et 64 bits.
Vous pouvez intégrer les résultats du rapport XML dans Sonarqube. Voir le plugin Delphi Sonarqube ou une version plus récente ici pour des informations détaillées.
Vous pouvez intégrer le rapport XML à l'aide du plugin Hudson Emma. Le rapport HTML peut être intégré à l'aide du plugin HTML Publisher.
Les dernières personnes publiées ont été rendues possibles grâce à la prise en charge généreuse de Devfactory et Mendrix.
Ce projet a été inspiré par de grands outils dans le monde Java comme Emma. Ce projet persiste sous une forme inachevée sur mon disque dur depuis plus d'un an. Enfin, il a glissé.
-m MapFile.map | Le fichier de carte utilisé comme entrée |
-e Executable.exe | L'exécutable à exécuter |
-sd directory | Le répertoire où la source peut être trouvée |
-sp directory directory2 | Les répertoires où la source peut être trouvée |
-spf filename | Utilisez les répertoires source répertoriés dans le fichier indiqué par le nom de fichier. Un répertoire par ligne dans le fichier |
-esm mask1 mask2 etc | Une liste de masques de fichiers à exclure de la liste des unités |
-ism mask1 mask2 etc | Incède uniquement les unités correspondant aux masques de fichiers fournis |
-ecp prefix1 mask2 etc | Une liste de préfixes de classe à exclure de la couverture |
-od directory | Le répertoire où les fichiers de sortie seront placés - Remarque - Le répertoire doit exister |
-u TestUnit TestUnit2 | Les unités qui doivent être vérifiées pour la couverture du code |
-uf filename | Unités de couverture répertoriées dans le fichier indiqué par le nom de fichier. Une unité par ligne dans le fichier |
-v | Afficher la sortie verbeuse |
-dproj ProjectFile.dproj | Analyser le fichier de projet pour les réseaux source, le nom exécutable, la page de code et d'autres options. Notez que les options qui ne pourraient avoir que une seule valeur, comme la page de code, seront remplacées dans l'ordre de l'apparence si plusieurs commutateurs associés sont rencontrés. |
-a Param Param2 | Paramètres à transmettre à l'application qui doit être vérifiée pour la couverture du code. ^ est un personnage d'évasion |
-lt [filename] | Journer les événements dans un fichier journal texte. Le nom du fichier par défaut est: Delphi-Code-Coverage-Debug.log |
-lapi | Log des événements à l'API Windows OutputDebugString |
-ife | Inclure l'extension du fichier - Cela cessera "Common.Codings" étant "converti" en "commun" |
-efe | Exclure l'extension du fichier - Ceci "converti" "Common.codings.pas" en "Common.codings" (et malheureusement, "Common.codings" à "Common"). C'est par défaut. |
-emma | Générez la sortie de la couverture EMMA en tant que «couverture.es» dans le répertoire de sortie. |
-emma21 | Générez la sortie de la couverture EMMA21 en tant que «couverture.es» dans le répertoire de sortie. |
-meta | Générer des fichiers de méta et de couverture distincts lors de la génération de sortie EMMA - «couverture.em» et «couverture.ec» sera générée pour les méta-données et les données de couverture. Remarque: Besoins -Emma aussi. |
-xml | Générer la sortie de la couverture XML - Générez la sortie XML en tant que «CodeCoverage_Summary.xml» dans le répertoire de sortie. |
-xmllines | Ajoute une couverture de lignes à la sortie de couverture XML générée. |
-xmlgenerics | Combinez la couverture des lignes pour plusieurs occurrences du même nom de fichier (en particulier utile en cas de classes génériques). |
-html | Générez la sortie de la couverture HTML en tant que «CodeCoverage_Summary.html» dans le répertoire de sortie. |
-uns dll_or_exe unitname [unitname_2] | Créez un espace de noms distinct (le nom de l'espace de noms sera le nom du module sans extension) uniquement pour les unités répertoriées dans le module |
-mns name dll_or_exe [dll_or_exe_2] | Créez un espace de noms séparé avec le nom donné pour la DLL répertoriée: s. Tous les modules chargés dans ces modules seront complétés. |
-lcl LineCountLimit | Nombre de fois une ligne est exécutée jusqu'à la limite spécifiée |
-cp CodePage | Page de code Nombre de fichiers source |
-tec | Pasthrough le code d'extérieur de l'application inspectée |
-twd | Utilisez le chemin de l'application comme répertoire de travail |
La couverture du code Delphi est autorisée en vertu des termes de la licence publique de Mozilla, v. 2.0. Vous pouvez obtenir une copie de la licence à http://mozilla.org/mp/2.0/.