Este garfo de Sonardelphi agora está muito desatualizado e não tem contribuições há alguns anos.
O Embarcadero recomenda que você adote o garfo encontrado aqui: https://github.com/integrated-application-development/sonnar-delphi
O garfo deles foi aceito e adotado por Sonarqube, que é uma conquista maginífica.
A versão oficial do Embarcadero do plugin Sonar Delphi para analisar o código -fonte Delphi com Sonarqube. Trabalhando para coletar atualizações e contribuições de outras versões para esta e avançar se for adiantado com novos recursos. Graças a Joachim Marder, da Jam Software, e Laurens Van Run, da Mendrix, por trabalhar conosco nisso, e todos os outros que contribuíram para os projetos Sonar-Delphi no Github.
Estamos aceitando solicitações de tração e procurando mais colaboradores.
Não estamos mais aceitando solicitações de tração. Recomendamos que você contribua para o repositório alternativo acima.
É um plugin sonarqube que fornece
.html opcional para teste de testeEsta é a versão do plug-in 1.0. Sonarqube 7.9 (LTS) ou superior é necessário (testado com Sonarqube 7.9.3 e 8.2.0)
O Sonarqube Delphi Plugin usa o sistema de rastreamento de problemas integrado do Github para gravar bugs e solicitações de recursos. Se você deseja levantar um problema, siga as recomendações abaixo:
A recuperação de codificina pode ser feita através da ferramenta DelphicodECoverage. Usar
CodeCoverage.exe -xml -xmllines
Para criar uma saída XML que pode ser importada através deste plug -in. Portanto, você precisa editar as propriedades do seu projeto de sonar:
sonar.delphi.codecoverage.tool=dcc
sonar.delphi.codecoverage.report=Test/CoverageResults/CodeCoverage_Summary.xml
Para importar os resultados de testes da Dunit, você deve usar a [Dunit Extension] (https://github.com/mendrix/dunit-extension) e usar o corredor fornecido (não é necessário alterar suas classes de teste para TTestCASEEXENSÃO).
ExitCode := TTestRunnerUtils.RunRegisteredTests;
Isso executará seus testes com a GUI se não houver parâmetros. Com o parâmetro -xml a ferramenta criará uma saída XML compatível com o JUNIT para Sonarqube. Com -output você pode especificar o diretório de saída
MyTester.exe -xml -output <outputdirectory>
Para importar esses resultados dos testes, adicione a seguinte linha às propriedades do seu projeto de sonar:
sonar.junit.reportsPath=TestResults
Você também precisa especificar onde o plug -in pode encontrar seus arquivos de teste. É importante que os arquivos de origem de seus testes sejam excluídos no diretório de fontes.
sonar.exclusions=MyTestFiles/*
sonar.tests=MyTestFiles
Também é possível importar resultados do dunitx. Portanto, você tem que adicionar o arquivo
DUnitX.Loggers.XML.SonarQube.pas
para o seu projeto Dunitx. Em seguida, altere o .dpr do seu aplicativo e adicione a funcionalidade para um diretório de fontes (é usado para encontrar o arquivo .PAS correto correspondente à unidade Delphi do mais unitter):
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);
Para importar o arquivo XML resultante, adicione a seguinte linha às propriedades do seu projeto de sonar:
sonar.testExecutionReportPaths=Test/TEST-dunitx-sqresults.xml
Para ter a recuperação de codificina e os resultados da unição para o Sonarqube, você deve combinar as opções acima. Por exemplo:
CodeCoverage.exe -e MyTester.exe -m MyTester.map -a ^^-xml^^ ^^-output TestResults^^ -ife -spf sourcedirs.txt -uf unitstotest.txt -od CoverageResults -html -xml -xmllines
Para construir um plug -in, você precisa de Java 8 e Maven 3.1 (ou superior).
mvn compile
mvn test
mvn package
Agora você pode copiar o plug -in do diretório /target/ para o diretório do plug -in Sonarqube.
Primeiro execute o objetivo do Eclipse Maven:
mvn eclipse:eclipse
O projeto pode ser importado para o Eclipse usando o arquivo -> importar e, em seguida, selecionar os projetos gerais -> existentes no espaço de trabalho.
Basta abrir o Pom.xml em Intellij deve resolver a maioria das dependências por si só.
Sonarqube tem uma ótima documentação sobre o desenvolvimento de um plug -in. Para depurar este plug -in com o Sonarqube Scanner, você apenas define a seguinte variável de ambiente (no Windows):
SET SONAR_SCANNER_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"
Agora você anexa seu depurador Eclipse (ou outro) à porta 8000 para começar a depurar.
O plug -in usa uma gramática ANTLR3 para analisar a língua Delphi. A definição gramatical pode ser encontrada em /src/main/antlr3/org/sonar/plugins/delphi/antlr/delphi.g . Uma maneira fácil de verificar e modificar esta gramática está usando o Antlrworks. Aqui você pode testar sua gramática em novos arquivos e implementar novas definições de idiomas.
Depois de alterar e testar com êxito a gramática Delphi.g, você deve gerar o novo código do analisador (o menu gerar, a opção Gere código). Agora copie os arquivos delphilexer.java e delphiparser.java de /src/main/antlr3/org/sonar/plugins/delphi/antlr/output/ to /src/main/java/org/sonar/plugins/delphi/antlr/ e (re) construir o plugin.
Nota: é importante garantir que suas novas alterações gramaticais também sejam testadas. Se você precisar apenas se certificar de que eles podem ser analisados sem erros, poderá adicionar seus novos recursos de idioma a um dos arquivos gramaticais existentes em /src/main/java/org/sonar/plugins/delphi/antlr (o mais novo é GramMartest2020.PAs ).