当前位置: 首页 > 知识库问答 >
问题:

将声纳、Jacoco、Gradle、ScalaTest与Junit、Java集成

诸修伟
2023-03-14

我在构建过程中非常成功地集成了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个答案

庄飞
2023-03-14

您可能还想使用 Coveralls.io

非常便宜:每个月只要4.99美元。您将与Github上的pull请求深度集成(跟踪分支何时增加或减少您的代码覆盖率),以及一个非常好的UI来深入您的代码覆盖率。

SBT和格雷尔集成都可用。

姚树
2023-03-14

我见过SonarQube的另一个配置参数——integration test . exec——sonar runner(grad le)或“sonar-runner”命令——显示0.0%的覆盖率:

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

沈淇
2023-03-14

看起来你已经有了

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"
 类似资料:
  • 大家好,我正试图与下面的声纳整合,这是我面临的错误 未能在项目xxxxx上执行goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar(default-cli):无法从插件'icode'注册扩展名fr.cnes.sonar.plugin.icode.check.icodeSensor:javax/xml/bind/

  • 我正在将 Gradle 4.4 用于 JaCoCo 0.8.0 的 Java 项目,并将声纳与声纳贾瓦 5.0.1 配合使用。 我有一个用龙目岛和注释的课程。 我在build.gradle中的JaCoCo配置如下所示: 此外,我有lombok.confi文件,其属性为< code > lombok . addlombokgeneratedannotation = true ,生成的内容实际上有<

  • 我有一个多模块maven项目,它既有模块内单元测试,也有端到端服务测试(不完全是集成测试,因为它们实际上没有与任何东西集成),我们在其中模拟被测试的特定服务的边界。后一组测试(使用mockmvc在部署之前测试所有层)生成jacoco。exec(或jacoco-it.exec,具体取决于我尝试的maven配置),它清楚地表明测试有助于代码覆盖率。事实上,绝大多数覆盖范围都在这一层(每个jacoco大

  • 声纳没有接收IntelliJidea/Jacoco覆盖报告生成的代码覆盖报告。 这是我试图让声纳接收jacoco报告的一个样本 JacocoSensor:找不到JaCoCo报告:/export/.../buildagent2/work/.../.teamcity/coverage_jacoco/JaCoCo.exec 声纳: 此组件没有覆盖范围详细信息。

  • 如何使用Sonar 2.3和Maven 3.0配置JaCoCo。4. 我的项目是一个多模块Maven项目。我的顶级pom包括以下内容: 运行mvn声纳后:声纳我得到0%代码覆盖报告声纳。我应该看到至少50%。注意,我确实在每个子项目的目标文件夹中看到了jacoco.exec。