将Sonar,Jacoco,Gradle,ScalaTest与Junit,Java集成

时间:2014-02-25 23:33:23

标签: java scala gradle jacoco sonarqube

我在构建过程中非常成功地集成了Gradle(1.11),Sonar(4.1.1),Java,Scala和Jacoco。我甚至设法获得有关成功测试数量的信息(感谢Stackoverflow!)。我有一个问题。

我似乎无法获得有关每次测试的覆盖率的信息。拥有这些信息会非常好。

> 15:11:16.514 INFO - Sensor JaCoCoSensor... 15:11:16.535 INFO -
> Analysing C:\example\gradle-sonar-jacoco-scala\build\jacoco\test.exec
> 15:11:17.887 INFO - No information about coverage per test.

项目的简化版本位于:https://github.com/sebastianharko/gradle-sonar-java-jacoco-scalatest-junit

干杯!

3 个答案:

答案 0 :(得分:0)

看起来你已经有了

apply plugin: 'jacoco'
你的gradle.build中的

但是我没有看到从gradle.build获取文件的定义

jacoco {
  destinationFile = file("$buildDir/jacoco/test.exec")
}

如果您计划进行集成和单元测试,它将类似于以下内容:

task "integtest"(type: Test, dependsOn: integtestClasses) {
testClassesDir = sourceSets.integtest.output.classesDir
classpath = sourceSets.integtest.runtimeClasspath

  jacoco {
      destinationFile = file("$buildDir/jacoco/integTest.exec")
  }
}
test {
  jacoco {
    destinationFile = file("$buildDir/jacoco/test.exec")
  }
}

使用相应的声纳配置项

 property "sonar.jacoco.reportPath", "$buildDir/jacoco/test.exec"
 property "sonar.jacoco.itReportPath", "$buildDir/jacoco/integTest.exec"

答案 1 :(得分:0)

我见过来自SonarQube - integrationTest.exec - sonarRunner (Gradle) or "sonar-runner" command - showing 0.0% covereage的其他配置参数:

参数sonar.java.coveragePlugin=jacoco引起了我的注意。你试过吗?

答案 2 :(得分:-3)

您可能还想使用Coveralls.io

非常便宜:仅4.99美元/月。并且您将在Github上进行深度集成(在分支增加或减少代码覆盖时跟踪)以及a very nice UI以深入了解您的代码覆盖率。

SBTGradle集成都可用。