我已经开始使用' java-gradle-simple'来自Sonar GitHub回购的例子:
我已将jacoco插件添加到我的build.gradle文件中,以查看单元测试覆盖率结果,并且我看到了警告:
未收集覆盖范围信息。也许你忘了包括 将信息调试到编译的类中?
我目前正在运行Sonar的4.3.2版本,这是我在运行' gradle test jacocoTestReport sonarRunner'之后看到的:
我的build.gradle文件如下所示:
apply plugin: 'java'
apply plugin: 'sonar-runner'
apply plugin: 'jacoco'
allprojects {
ext.baseVersion = "0.1"
ext.snapshotVersion = true
group = "org.sonar.tests"
version = "$baseVersion" + (snapshotVersion ? "-SNAPSHOT" : "")
}
sonarRunner {
sonarProperties {
property "sonar.projectName", "Simple Java Gradle Project"
property "sonar.projectKey", "org.codehaus.sonar:example-java-gradle"
property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
property "sonar.binaries", "${project.buildDir}/classes"
property "sonar.sources", "src/main"
property "sonar.tests", "src/test"
property "sonar.java.coveragePlugin", "jacoco"
}
}
buildscript {
repositories { mavenCentral() }
dependencies { classpath 'org.ajoberstar:gradle-jacoco:0.1.0' }
}
test {
ignoreFailures = true
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.10'
}
repositories {
mavenCentral()
}
我还缺少其他一些配置吗?令人惊讶的是,似乎没有太多关于使用Gradle生成单元测试覆盖率的信息。
答案 0 :(得分:1)
由于您使用的是jdk 8,因此应将以下块添加到gradle脚本中:
jacoco {
toolVersion = "0.7.0.201403182114"
}
另外,你应该确保你的声纳版本支持jdk8