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

雅各科马文插件未报告测试覆盖率

乌甫
2023-03-14

当我运行mvn干净测试时,我希望覆盖输出被写入目标/覆盖报告,但是当我打开index.html构建后它是空的。

我检查了以下内容,jacoco.exec文件存在,其中有一组类名-在覆盖率html中有一个链接“Sessions ”,当我单击它时,我看到一组我的类似乎已经被执行-当我运行maven命令时,我没有看到错误或警告

我很困惑为什么报告是空的。从我看到的所有例子来看,这似乎应该行得通。我错过了什么?

我正在为maven插件使用以下jacoco配置。

  <plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <configuration>
      <append>true</append>
      <skip>false</skip>
      <excludes/>
      <outputDirectory>${project.build.directory}/coverage-reports/</outputDirectory>
      <dataFile>${project.build.directory}/jacoco.exec</dataFile>
      <includes>
        <include>mypackage.*</include>
      </includes>
      <check>false</check>
    </configuration>
    <executions>
      <execution>
        <id>pre-test</id>
        <goals>
          <goal>prepare-agent</goal>
        </goals>
      </execution>
      <execution>
        <id>post-test</id>
        <goals>
          <goal>report</goal>
        </goals>
        <phase>test</phase>
      </execution>
    </executions>
  </plugin>

显然,这与我提供的include模式有关。当我删除包含时,它确实显示了我的覆盖范围,但超出了我的需要。我仍在尝试找出用于正确包含的模式。

共有1个答案

宋宇
2023-03-14

你也需要把它钩住,把它改成

 <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.6.3.201306030806</version>
            <executions>
              <!-- pre-unit-test execution helps setting up some maven property,
                which will be used later by JaCoCo -->
              <execution>
                <id>pre-unit-test</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
                <configuration>
                  <destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
                  <!-- passing property which will contains settings for JaCoCo agent.
                    If not specified, then "argLine" would be used for "jar" packaging -->
                  <propertyName>surefireArgLine</propertyName>
                </configuration>
              </execution>
              <!-- report phase setup -->
              <execution>
                <id>post-unit-test</id>
                <phase>test</phase>
                <goals>
                  <goal>report</goal>
                </goals>
                <configuration>
                  <!-- output file with report data. -->
                  <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
                  <!-- output directory for the reports. -->
                  <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.14</version>
            <executions>
              <execution>
                <id>default-test</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <argLine>${surefireArgLine}</argLine>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <argLine>-XX:MaxPermSize=512m</argLine>
            </configuration>
          </plugin>
        </plugins>
  </build>
 类似资料:
  • 我使用sonarqube作为测试结果的输出,而maven和Jacoco用于测试测试用例。 Sonarqube版本是5.4 Maven版本是3.3.9 Jacoco版本0.7 这是我的pom.xml 我也在这里跟踪这个链接,但是对于我正在使用的文件,请在这里输入链接描述。 这就是我构建测试项目的方式 buiild返回成功,但没有生成代码覆盖率我还通过去sonarqube检查了这一点localhost

  • 我必须获得应用程序的代码覆盖率,而业务测试是从不同的代码库执行的。 我使用:Maven作为我的构建Jbehave作为我的测试框架。测试是用java编写的。 我的应用程序是部署在tomcat上的一组war文件。 应用程序代码库与测试代码库是分开的。 在获得覆盖范围时,我遵循以下步骤。 1使用maven编译测试代码。 2将应用程序类从构建位置(${app.code.dir}/目标/类)复制到${tes

  • v2.0 Codecov报表 , 从2017-12-29后开始统计 测试覆盖率为 : , 可以从 https://codecov.io/gh/apache/dubbo 页面得到覆盖率报表 v1.0 基于 2.0.12 版本,统计于 2012-02-03

  • 我尝试在我的应用程序模块中的代码的AndroidKotlin应用程序的声纳Qube中显示测试覆盖范围。我可以生成雅各的覆盖结果并显示声纳Qube分度仪,但问题是测试覆盖范围未显示在声纳Qube中: https://imgur.com/a/xOjxLl1 在我的项目的build.gradle中,我有: 在我的身体里。我的应用程序模块的gradle 我生成我的Jacoco报告: 并使用:生成我的son

  • 我在测试android以创建覆盖率测试报告时遇到问题。我使用./gradlew createDebugCoverageReport命令创建覆盖率报告。已创建报告,但所有测试的结果均为%0。第一个设备已植根,但第二个设备未植根。我们使用这两个设备测试勺子,并查看勺子输出。所以这两个设备一起使用。问题:当我们使用第一个设备(根设备)运行此命令时,将按预期创建所有覆盖率测试结果,但当我们同时使用两个设备

  • 当运行Gradle的Jacoco插件时,我在一组选定的类上得到零代码覆盖率报告。我已经确认测试这些类的所有单元测试都已成功运行。 非常有趣的是,EclEmma在Eclipse中生成了正确的代码覆盖率结果。我已经确认这两个工具使用的是相同版本的Jacoco。 我想知道这两种工具的区别是什么?我需要Gradle Jacoco插件的额外配置吗。 编辑:我的Gradle Jacoco输出显示“com类的执