我遇到了生成代码覆盖率报告并对包含项目代码的单元测试进行分析的问题。我使用Sonar来获取项目报告,但单元测试覆盖部分没有显示任何内容。我做了一些研究,发现声纳需要有一个由emma / clover / corbetura / jacoco生成的junit报告。该项目是非专业的。请告诉我如何分析基于非maven的多模块项目的代码覆盖率。我正在使用声纳跑步者。
任何链接或参考都会有所帮助。 请不要提供文档页面的链接。显然,我已经浏览了所有这些。 提前谢谢。
答案 0 :(得分:1)
我提供了文档页面的链接,以帮助那些没有看过文档或示例的人。获取maven属性设置并将其转换为sonar-runner.properties。例如,根据您设置多模块项目的方式,您可以将此设置放在父级别或每个模块内:sonar.jacoco.reportPath=reports/coverage/jacoco.exec
以下是多模块声纳跑步项目的链接:
http://docs.codehaus.org/display/SONAR/Analyzing+with+SonarQube+Runner
要配置单元测试代码覆盖率,请将maven中的相同属性应用于sonar-project.properties文件。以下是代码覆盖率示例中的示例:
https://github.com/SonarSource/sonar-examples/tree/master/projects/code-coverage
请注意,您需要设置单位和coverage属性以及源编码属性。
sonar.projectKey=org.codehaus.sonar:example-ut-sonarRunner-jacoco-reuseReports
sonar.projectName=UT coverage with SonarQube Runner reusing JUnit and JaCoCo reports
sonar.projectVersion=1.0
sonar.sources=src
sonar.binaries=classes
sonar.language=java
# Tells SonarQube to reuse existing reports for unit tests execution and coverage reports
sonar.dynamicAnalysis=reuseReports
# Tells SonarQube where the unit tests execution reports are
sonar.junit.reportsPath=reports/junit
# Tells SonarQube that the code coverage tool by unit tests is JaCoCo
sonar.java.coveragePlugin=jacoco
# Tells SonarQube where the unit tests code coverage report is
sonar.jacoco.reportPath=reports/coverage/jacoco.exec
# Encoding of the source files
sonar.sourceEncoding=UTF-8