Jacoco报道了声纳 - 跑步者找不到的路径

fxm*_*fxm 2 jacoco sonar-runner sonarqube

我使用EclEmma生成了一个覆盖率报告,其中包含以下路径:

C:/tmp/coverageReport/report.exec
Run Code Online (Sandbox Code Playgroud)

此文件存在,不为空且可读.关于代码覆盖的我的sonnar-runner配置定义如下:

sonar.java.coveragePlugin=jacoco
sonar.junit.reportsPath=C:/tmp/coverageReport/report.exec
Run Code Online (Sandbox Code Playgroud)

分析成功完成,但单元测试覆盖率小部件中没有可见数据.

此外,我在分析过程中得到以下几行:

18:23:45.036 INFO  - parsing C:/tmp/coverageReport/report.exec
18:23:45.037 WARN  - Reports path not found: C:/tmp/coverageReport/report.exec
Run Code Online (Sandbox Code Playgroud)

关于我缺少的任何想法?

Aru*_*gal 7

sonar.junit.reportPath和sonar.jacoco.reportPath之间有很大的不同.你正在混淆价值观.

同样,还有sonar.jacoco.itReportPath(用于基于jaocco.exec文件的非单元测试,例如:jacocoIT.exec(如果您正在为Integration测试创建).

现在,根据sonarQube实例的版本(4.x或最新5.xx),您可能需要将sonar.junit.reportPath或sonar.java.junit.reportPath设置为值(包含该值的文件夹). xml数据).

例如:如果我的单元测试或集成测试文件夹的结果文件(.xmls)位于文件夹build/test-results/UT文件夹中,则:

sonar.java.junit.reportPath=build/test-results/UT
Run Code Online (Sandbox Code Playgroud)

要么

sonar.junit.reportPath=build/test-results/UT
Run Code Online (Sandbox Code Playgroud)

对于代码覆盖率文件(.exec),您必须使用:

sonar.jacoco.reportPath=build/jacoco/UT/jacocoUT.exec
Run Code Online (Sandbox Code Playgroud)

要么

sonar.jacoco.itReportPath=build/jacoco/IT/jacocoIT.exec
Run Code Online (Sandbox Code Playgroud)

重要 - 声纳属性:

声纳.jacoco .xxx 指向文件名.

声纳.junit .xxx 声纳.java.junit .xxx 指向文件夹名称.

声纳.surefire .xxx 声纳.java.surefire .xxx 指向文件夹名称.

sonar.junit.reportPath类似,还有另一个名为:sonar的属性.神火 .reportPath或声纳.java.surefire .reportPath.在使用Maven/Gradle分析源代码下,寻找Sonar文档以获得更多帮助.

http://docs.sonarqube.org/display/SCAN/Analyzing+Source+Code(展开它).

例如:在Analyze with Gradle构建系统下,查找" 配置分析属性"部分/更多.