إن شوكة Sonardelphi هذه الآن قديمة جدًا ولم تحصل على أي مساهمات لبضع سنوات حتى الآن.
يوصي Embarcadero بتبني الشوكة الموجودة هنا: https://github.com/integrated-application-development/sonar-delphi
تم قبول شوكةهم واعتماده من قبل Sonarqube وهو إنجاز Maginificent.
النسخة الرسمية لـ Embarcadero من البرنامج المساعد Sonar Delphi لتحليل رمز مصدر Delphi مع Sonarqube. العمل على جمع التحديثات والمساهمات من الإصدارات الأخرى في هذا الإصدارات والتحرك في حالة الأمام بميزات جديدة. بفضل Joachim Marder of Jam Software ، و Laurens Van Run of Mendrix على العمل معنا على هذا ، وكل من ساهم في مشاريع Sonar-Delphi على Github.
نحن نقبل طلبات السحب ونبحث عن المزيد من المساهمين.
لم نعد نقبل طلبات السحب. نوصيك بالمساهمة في المستودع البديل أعلاه.
هو البرنامج المساعد Sonarqube الذي يوفر
.html الإخراج ل testcoverageهذا هو البرنامج المساعد 1.0. هناك حاجة إلى Sonarqube 7.9 (LTS) أو أعلى (تم اختباره مع Sonarqube 7.9.3 و 8.2.0)
يستخدم البرنامج المساعد Sonarqube Delphi نظام تتبع المشكلات المتكامل لـ Github لتسجيل الأخطاء وطلبات الميزات. إذا كنت ترغب في إثارة مشكلة ، فيرجى اتباع التوصيات أدناه:
يمكن أن يتم برنامج الترميز من خلال أداة DelphicodEcoverage. يستخدم
CodeCoverage.exe -xml -xmllines
لإنشاء إخراج XML يمكن استيراده من خلال هذا البرنامج المساعد. لذلك عليك تحرير خصائص مشروع السونار الخاصة بك:
sonar.delphi.codecoverage.tool=dcc
sonar.delphi.codecoverage.report=Test/CoverageResults/CodeCoverage_Summary.xml
لاستيراد TestResults من Dunit ، يجب عليك استخدام [Dunit Extension] (https://github.com/mendrix/dunit-extension) واستخدام العداء الموردة (ليس من الضروري تغيير فئات الاختبار إلى ttestcaseextension).
ExitCode := TTestRunnerUtils.RunRegisteredTests;
سيؤدي ذلك إلى إجراء اختباراتك مع واجهة المستخدم الرسومية إذا لم يتم تقديم معلمات. مع المعلمة -xml ستنشئ الأداة إخراج XML متوافق مع Junit لـ Sonarqube. مع -output يمكنك تحديد دليل الإخراج
MyTester.exe -xml -output <outputdirectory>
لاستيراد نتائج الاختبار هذه ، أضف السطر التالي إلى خصائص مشروع Sonar:
sonar.junit.reportsPath=TestResults
يجب عليك أيضًا تحديد مكان العثور على المساعدات. من المهم أن يتم استبعاد أدوات المصدر من الاختبارات الخاصة بك في دليل المصادر الخاصة بك.
sonar.exclusions=MyTestFiles/*
sonar.tests=MyTestFiles
من الممكن أيضًا استيراد النتائج من Dunitx. لذلك عليك إضافة الملف
DUnitX.Loggers.XML.SonarQube.pas
إلى مشروع Dunitx الخاص بك. ثم قم بتغيير .DPR لتطبيقك وأضف وظائفًا لدليل المصادر (يتم استخدام هذا للعثور على ملف .PAS الصحيح المقابل لوحدة Delphi الخاصة بـ Unittest):
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);
لاستيراد ملف XML الناتج ، أضف السطر التالي إلى خصائص مشروع Sonar الخاصة بك:
sonar.testExecutionReportPaths=Test/TEST-dunitx-sqresults.xml
للحصول على نتائج برامج الترميز و unittest ل sonarqube ، يجب أن تجمع بين الخيارات أعلاه. على سبيل المثال:
CodeCoverage.exe -e MyTester.exe -m MyTester.map -a ^^-xml^^ ^^-output TestResults^^ -ife -spf sourcedirs.txt -uf unitstotest.txt -od CoverageResults -html -xml -xmllines
لإنشاء مكون إضافي ، تحتاج إلى Java 8 و Maven 3.1 (أو أكبر).
mvn compile
mvn test
mvn package
يمكنك الآن نسخ المكون الإضافي من /target/ الدليل إلى دليل Sonarqube Plugin.
قم بتشغيل هدف Eclipse Maven لأول مرة:
mvn eclipse:eclipse
يمكن بعد ذلك استيراد المشروع إلى Eclipse باستخدام ملف -> استيراد ثم تحديد General -> المشاريع الحالية في مساحة العمل.
ببساطة فتح pom.xml في intellij يجب أن يحل معظم التبعية في حد ذاته.
Sonarqube لديه وثائق رائعة حول تطوير البرنامج المساعد. لتصحيح هذا البرنامج المساعد مع Sonarqube Scanner لك فقط لتعيين متغير البيئة التالي (على Windows):
SET SONAR_SCANNER_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"
الآن يمكنك إرفاق Eclipse (أو غيرها) تصحيح الأخطاء إلى المنفذ 8000 لبدء تصحيح الأخطاء.
يستخدم المكون الإضافي قواعد ANTLR3 لتحليل لغة دلفي. يمكن العثور على تعريف القواعد في /src/main/antlr3/org/sonar/plugins/delphi/antlr/delphi.g . طريقة سهلة للتحقق من هذه القواعد وتعديلها تستخدم Antlrworks. هنا يمكنك اختبار القواعد الخاصة بك على الملفات الجديدة وتنفيذ تعريفات لغة جديدة.
بعد تغيير واختبار قواعد اللغة delphi.g بنجاح ، يجب عليك إنشاء رمز المحلل الجديد (القائمة إنشاء ، خيار إنشاء رمز). الآن قم بنسخ الملفات delphilexer.java و delphiparser.java من /src/main/antlr3/org/sonar/plugins/delphi/antlr/output/ to /src/main/java/org/sonar/plugins/delphi/antlr/ و (re) بناء المكون الإضافي.
ملاحظة: من المهم التأكد من اختبار تغييرات القواعد الجديدة أيضًا. إذا كان عليك فقط التأكد من أنه يمكن تحليلها بدون أخطاء ، فيمكنك إضافة ميزات لغتك الجديدة إلى إحدى ملفات القواعد الموجودة في /SRC/MAIN/JAVA/ORG/SONAR/PLUCINS/DELPHI/Antlr (أحدث ما هو grammartest2020.pas ).