Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jacoco maven插件/声纳扫描仪;“测试覆盖率”;合并的jacoco报告中不存在信息(jacoco total.exec)_Java_Jenkins_Sonarqube_Sonarqube Scan_Jacoco Maven Plugin - Fatal编程技术网

Java jacoco maven插件/声纳扫描仪;“测试覆盖率”;合并的jacoco报告中不存在信息(jacoco total.exec)

Java jacoco maven插件/声纳扫描仪;“测试覆盖率”;合并的jacoco报告中不存在信息(jacoco total.exec),java,jenkins,sonarqube,sonarqube-scan,jacoco-maven-plugin,Java,Jenkins,Sonarqube,Sonarqube Scan,Jacoco Maven Plugin,一段时间以来,我一直在尝试用合并报告的覆盖率来解决一个问题,但我似乎找不到任何与我的特定问题相关的有用信息 实施详情: SonarQube(v5.4) jacoco maven插件(v0.7.9) 声纳jacoco监听器(v2.8) 詹金斯声纳QUBE扫描仪(v2.8) maven surefire插件(v2.16) maven故障保护插件(v2.18.1) junit(v4.12) 我已经配置了JacoCoMaven插件,并正确生成了单元和集成测试报告,包括通过sonar jacoco侦听

一段时间以来,我一直在尝试用合并报告的覆盖率来解决一个问题,但我似乎找不到任何与我的特定问题相关的有用信息

实施详情:

  • SonarQube(v5.4)
  • jacoco maven插件(v0.7.9)
  • 声纳jacoco监听器(v2.8)
  • 詹金斯声纳QUBE扫描仪(v2.8)
  • maven surefire插件(v2.16)
  • maven故障保护插件(v2.18.1)
  • junit(v4.12)
我已经配置了JacoCoMaven插件,并正确生成了单元和集成测试报告,包括通过sonar jacoco侦听器模块进行的测试覆盖率

但是,当用于Jenkins的SonarQube扫描仪(v2.8)执行其分析时,一个名为JacocoOverallSensor的传感器检查第三个文件jacoco-overall.exec,该文件中没有测试信息覆盖

因此,我根本没有通过在SonarQube覆盖率选项卡中为我的项目提供的测试信息来获得任何覆盖率,只有每个类的行和条件

扫描仪的输出示例:

INFO: Sensor SurefireSensor
INFO: parsing /var/lib/jenkins/workspace/evo-sonar-test/target/junit-reports
INFO: Sensor SurefireSensor (done) | time=160ms
INFO: Sensor JaCoCoSensor
INFO: Analysing /var/lib/jenkins/workspace/evo-sonar-test/target/jacoco/jacoco-unit.exec
INFO: Information about coverage per test has been collected.
INFO: Sensor JaCoCoSensor (done) | time=887ms
INFO: Sensor JaCoCoItSensor
INFO: Analysing /var/lib/jenkins/workspace/evo-sonar-test/target/jacoco/jacoco-itest.exec
INFO: Information about coverage per test has been collected.
INFO: Sensor JaCoCoItSensor (done) | time=365ms
INFO: Sensor JaCoCoOverallSensor
INFO: Analysing /var/lib/jenkins/workspace/evo-sonar-test/target/jacoco/jacoco-unit.exec
INFO: Analysing /var/lib/jenkins/workspace/evo-sonar-test/target/jacoco/jacoco-itest.exec
INFO: Analysing /var/lib/jenkins/workspace/evo-sonar-test/.sonar/jacoco-overall.exec
INFO: No information about coverage per test.
INFO: Sensor JaCoCoOverallSensor (done) | time=333ms
根据我对JacocoOverallSensor包/类的了解,这个jacoco-total.exec应该是生成的集成和单元jacoco报告的合并副本。正在创建jacoco-totall.exec文件并填充数据,这意味着正在合并我的单元/集成测试,但该文件中似乎只缺少测试覆盖率信息

在这一点上,我不明白为什么会这样。我搜索了又搜索,但在jacoco-totall.exec中,而在unit/integration exec文件中,我似乎找不到任何只对测试覆盖率有问题的人

问题:

  • 是否有一些我缺少的配置值允许通过测试信息将单元/集成覆盖率合并到jacoco-totall.exec中
  • 是否有必要合并这两份报告(我是否可以 在声纳扫描器中合并)?我最终需要从我的生活中得到的一切 安装程序能够通过单元和集成的测试查看覆盖率 分别测试-此时不需要总体组合覆盖率 时间
作为参考,我的声纳配置(在用于Jenkins的Sonarqube扫描仪中配置):

我很乐意应要求发布更多信息,但在这一点上,我在关于这个主题的信息海洋中迷失了方向,我不确定还有什么对人们有用。请求,你就会得到

# Data locations to be analyzed
sonar.sources=src/main
sonar.tests=src/test
sonar.java.binaries=target/classes
sonar.java.libraries=target/libs
sonar.java.test.binaries=target/test-classes
sonar.java.test.libraries=target/libs
sonar.junit.reportsPath=target/junit-reports

# Compiler configuration
sonar.java.source=1.7
sonar.language=java
sonar.sourceEncoding=UTF-8

# Jacoco configuration
sonar.java.coveragePlugin=jacoco
sonar.jacoco.reportMissing.force.zero=true
sonar.jacoco.reportPath=target/jacoco/jacoco-unit.exec
sonar.jacoco.itReportPath=target/jacoco/jacoco-itest.exec