与SonarQube does not display detailed report per file for fully covered classes via Gradle类似,但不是欺骗。
Sonar Qube版本3.7.4 Gradle版本2.1
运行gradle sonarRunner
会生成一个文件test.exec,Sonar 执行选择
14:50:28.167 INFO - Analysing D:\projname\build\jacoco\test.exec
14:50:28.265 INFO - No information about coverage per test.
14:50:28.266 INFO - Sensor JaCoCoSensor done: 106 ms
14:50:28.529 INFO - Execute decorators...
14:50:29.253 INFO - Store results in database
14:50:29.391 INFO - ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/com.projname
然而,在刷新上述项目时,它显示覆盖率为0%
单位测试覆盖率 0.0% 0.0%线覆盖率 0.0%分支覆盖率
我已经设置了
sonarRunner {
sonarProperties {
property 'sonar.jacoco.reportPath', 'D:\\projname\\build\\jacoco\\test.exec'
property 'sonar.junit.reportsPath','$buildDir/test-results'
property 'sonar.tests', "$buildDir/classes/test"
}
}
我试过\和正斜杠 - 它没有什么区别
任何想法?
修改
根据Peter的回答,删除了sonarProperties
- 所以build.gradle基本上是
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'sonar-runner'
apply plugin: 'jacoco'
sourceCompatibility = 1.7
group = 'com.mycomp'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.10'
}
}
这不会读取在D:\ projname \ build \ jacoco \ test.exec
生成的默认exec文件相反,它会给出消息
17:06:36.912 INFO - Project coverage is set to 0% as no JaCoCo execution data has been dumped: D:\projname\target\jacoco.exec
问题:文件夹名称中的空格是否会导致问题
答案 0 :(得分:2)
使用gradle test sonarRunner
确保测试和覆盖率结果是最新的。避免构建脚本中的绝对路径。 Groovy仅对双引号字符串("$buildDir/test-results"
)执行字符串插值。如果您已应用jacoco
和java
个插件,则应正确预配置代码段中显示的所有Sonar属性。