Cette fourche de Sonardelphi est maintenant très dépassée et n'a pas eu de contributions depuis quelques années maintenant.
Embarcadero vous recommande d'adopter la fourche trouvée ici: https://github.com/intégrated-application-development/sonar-delphi
Leur fourche a été acceptée et adoptée par Sonarqube qui est une réalisation maginifiante.
La version officielle d'Embarcadero du plugin Sonar Delphi pour analyser le code source de Delphi avec Sonarqube. Travailler pour collecter des mises à jour et des contributions d'autres versions dans celle-ci et avancer si vous avancez avec de nouvelles fonctionnalités. Grâce à Joachim Marder de Jam Software, et à Laurens Van Run de Mendrix pour avoir travaillé avec nous à ce sujet, et tous les autres qui ont contribué aux projets Sonar-Delphi sur Github.
Nous acceptons les demandes de traction et recherchons plus de contributeurs.
Nous n'acceptons plus les demandes de traction. Nous vous recommandons de contribuer au référentiel alternatif ci-dessus.
Est un plugin Sonarqube qui fournit
.html facultative pour la couverture de testIl s'agit du plugin-Version 1.0. Sonarqube 7.9 (LTS) ou plus est nécessaire (testé avec Sonarqube 7.9.3 et 8.2.0)
Le plugin Sonarqube Delphi utilise le système de suivi des problèmes intégré de GitHub pour enregistrer les bogues et les demandes de fonctionnalités. Si vous souhaitez soulever un problème, veuillez suivre les recommandations ci-dessous:
Le code de code peut être effectué via l'outil DelphicoDecoverage. Utiliser
CodeCoverage.exe -xml -xmllines
Pour créer une sortie XML qui peut être importée via ce plugin. Par conséquent, vous devez modifier les propriétés du projet de sonar:
sonar.delphi.codecoverage.tool=dcc
sonar.delphi.codecoverage.report=Test/CoverageResults/CodeCoverage_Summary.xml
Pour importer les TestResults depuis Dunit, vous devez utiliser l'extension [DUNIT] (https://github.com/mendrix/dunit-extension) et utiliser le coureur fourni (il n'est pas nécessaire de modifier vos classes de test en ttestCaseExtension).
ExitCode := TTestRunnerUtils.RunRegisteredTests;
Cela exécutera vos tests avec l'interface graphique si aucun paramètre n'est donné. Avec le paramètre -xml l'outil créera une sortie XML compatible avec JUnit pour Sonarqube. Avec -output vous pouvez spécifier le répertoire de sortie
MyTester.exe -xml -output <outputdirectory>
Pour importer ces résultats de test, ajoutez la ligne suivante à vos propriétés de projet Sonar:
sonar.junit.reportsPath=TestResults
Vous devez également spécifier où le plugin peut trouver vos fichiers de test. Il est important que les SourceFiles de vos tests soient exclus dans votre répertoire de sources.
sonar.exclusions=MyTestFiles/*
sonar.tests=MyTestFiles
Il est également possible d'importer des résultats de Dunitx. Par conséquent, vous devez ajouter le fichier
DUnitX.Loggers.XML.SonarQube.pas
à votre projet Dunitx. Modifiez ensuite le .DPR de votre application et ajoutez des fonctionnalités pour un répertoire de sources (ceci est utilisé pour trouver le fichier .pas correct correspondant à l'unité Delphi de l'unité):
TOptionsRegistry.RegisterOption<String>('sources', 's', 'Specify a file with on each line a directory where the PAS-files of the unittests can be found.', procedure (AString: String) begin
LSourcesDir := AString;
end);
sqLogger := TDUnitXXMLSonarQubeFileLogger.Create(LSourcesDir, TDUnitX.Options.XMLOutputFile);
runner.AddLogger(sqLogger);
Pour importer le fichier XML résultant, ajoutez la ligne suivante à vos propriétés de projet Sonar:
sonar.testExecutionReportPaths=Test/TEST-dunitx-sqresults.xml
Pour avoir à la fois des résultats de codécories et d'unités pour Sonarqube, vous devez combiner les options ci-dessus. Par exemple:
CodeCoverage.exe -e MyTester.exe -m MyTester.map -a ^^-xml^^ ^^-output TestResults^^ -ife -spf sourcedirs.txt -uf unitstotest.txt -od CoverageResults -html -xml -xmllines
Pour construire un plugin, vous avez besoin de Java 8 et Maven 3.1 (ou plus).
mvn compile
mvn test
mvn package
Vous pouvez maintenant copier le plugin du répertoire /target/ répertoire vers le répertoire du plugin SonarQube.
First pour la première fois le but Eclipse Maven:
mvn eclipse:eclipse
Le projet peut ensuite être importé dans Eclipse à l'aide du fichier -> Importer, puis de la sélection des projets Général -> existants dans l'espace de travail.
Ouvrez simplement le pom.xml dans Intellij devrait résoudre la plupart des dépendances en soi.
Sonarqube a une excellente documentation sur le développement d'un plugin. Pour déboguer ce plugin avec le scanner Sonarqube, vous avez simplement défini la variable d'environnement suivante (sur Windows):
SET SONAR_SCANNER_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"
Vous attachez maintenant votre débogueur Eclipse (ou autre) au port 8000 pour commencer le débogage.
Le plugin utilise une grammaire ANTLR3 pour analyser la langue Delphi. La définition de la grammaire se trouve dans /src/main/antlr3/org/sonar/plugins/delphi/antlr/delphi.g . Un moyen facile de vérifier et de modifier cette grammaire consiste à utiliser antlrworks. Ici, vous pouvez tester votre grammaire sur de nouveaux fichiers et implémenter de nouvelles définitions de langue.
Après avoir réussi à changer et à tester la grammaire Delphi.g, vous devez générer le nouveau code d'analyse (menu Générer, Option Générer du code). Copiez maintenant les fichiers delphilexer.java et delphiparser.java à partir /src/main/antlr3/org/sonar/plugins/delphi/antlr/output/ to /src/main/java/org/sonar/plugins/delphi/antlr/ et (re) construire le plugin.
Remarque: il est important de s'assurer que vos nouveaux modifications de grammaire sont également testées. Si vous n'avez qu'à vous assurer qu'ils peuvent être analysés sans erreurs, vous pouvez ajouter vos nouvelles fonctionnalités linguistiques à l'un des fichiers de grammaire existants dans / src / main / java / org / sonar / plugins / Delphi / antlr (le plus récent est Grammatest2020.pas ).