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

如何在maven测试阶段生成jacoco报告

厍和颂
2023-03-14

我在单元测试用例中使用Mockito和Power Mockito。当我运行配置文件代码时,我能够生成jacoco报告,但是

当我在测试阶段试图生成Jacoco报告时,我遇到了错误

错误[错误]无法执行目标组织。jacoco:jacoco maven插件:0.8.2:project testproject api上的报告(默认报告):生成jacoco报告时出错:创建报告时出错:分析d:\workspace\api\target\classes\pkg\ResponseBuilder时出错。班无法处理插入指令的类pkg\ResponseBuilder。班请提供原始的非仪器化类-

代码请在下面找到代码

<profiles>
    <profile>
      <id>code-coverage</id>
     <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.jacoco</groupId>
          <artifactId>org.jacoco.agent</artifactId>
          <classifier>runtime</classifier>
          <version>${jacocoVersion}</version>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>${jacocoVersion}</version>
            <executions>
              <!-- Off line instrumentation is needed to compute coverage for Power Mock tests -->
              <execution>
                <id>default-instrument</id>
                <goals>
                  <goal>instrument</goal>
                </goals>
              </execution>
              <execution>
                <id>default-restore-instrumented-classes</id>
                <goals>
                  <goal>restore-instrumented-classes</goal>
                </goals>
              </execution>
              <execution>
                <id>default-report</id>    
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven.surefire.plugin.version}</version>
            <dependencies>
              <dependency>
                <groupId>org.apache.maven.surefire</groupId>
                <artifactId>surefire-junit47</artifactId>
                <version>${maven.surefire.plugin.version}</version>
              </dependency>
            </dependencies>
            <configuration>
              <!-- Workaround to https://code.google.com/p/powermock/issues/detail?id=504 -->
              <argLine>-XX:-UseSplitVerifier</argLine>
              <systemPropertyVariables>
                <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
              </systemPropertyVariables>
              <reuseForks>false</reuseForks>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

共有1个答案

钱繁
2023-03-14

问题现在已经解决了。我需要为默认恢复工具化类目标添加测试阶段。请找到更新的代码

 <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven.surefire.plugin.version}</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>${maven.surefire.plugin.version}</version>
          </dependency>
        </dependencies>
        <configuration>
          <!-- Workaround to https://code.google.com/p/powermock/issues/detail?id=504 -->
          <argLine>-XX:-UseSplitVerifier</argLine>
          <systemPropertyVariables>
            <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
          </systemPropertyVariables>
          <reuseForks>false</reuseForks>
        </configuration>
      </plugin>


<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacocoVersion}</version>
<executions>
  <execution>
    <id>coverage-initialize</id>
    <goals>
      <goal>prepare-agent</goal>
    </goals>
  </execution>
  <execution>
    <id>default-instrument</id>
    <goals>
      <goal>instrument</goal>
    </goals>
  </execution>
  <execution>
    <id>default-restore-instrumented-classes</id>
    <phase>test</phase>
    <goals>
      <goal>restore-instrumented-classes</goal>
    </goals>
  </execution>
  <execution>
    <id>coverage-report</id>
    <phase>test</phase>
    <goals>
      <goal>report</goal>
    </goals>
  </execution>
  </executions>
</plugin>
 类似资料:
  • jacoco-ut.exec文件是在target/coverage-reports/jacoco-ut . exec中创建的,但是看不到任何站点/目录。 下面是Jacoco的配置: 以下是控制台输出: 这就是全部。 更新:我运行了以下命令:mvn jacoco:report -X,它说了一些有趣的东西: 它正在寻找一个jacoco。exec文件,当我让它创建一个jacoco ut时。exec文件。

  • 在我的gradle构建脚本中,我有一个部分说在运行任务时生成测试报告:JacocoTestReport 当我运行任务时,它给我一个错误:无法读取执行数据文件…\build\jamoco\test.exec我如何修复这个错误。当我在完整的项目上进行gradle构建时,我看到测试报告正在生成。

  • 我试图设置为我的项目的代码覆盖 我的项目基于 下面是我项目的 然后我运行并看到以下内容 然后我运行,我看到 问题 -配置中有什么不正确 -如何生成报告? 谢啦

  • 我使用“selenide”、“testng”、“maven”、“eclipse”创建了一些自动化脚本。我试着添加诱惑力测试结果。我遵循了allure-testng-maven说明并更新了pom.xml。 要从eclipse运行测试,我要右键单击pom.xml+“run as”+“Maven test”。这是在“./target/allure-results”文件夹中执行所有testng测试和生成的

  • 本文向大家介绍jmeter如何自动生成测试报告,包括了jmeter如何自动生成测试报告的使用技巧和注意事项,需要的朋友参考一下 1、准备.jmx脚本文件 2、在脚本文件路径下执行cmd命令: 参数解析:   ● -n: 非GUI模式执行JMeter   ● -t: 执行测试文件所在的位置   ● -l: 指定生成测试结果的保存文件,.jtl文件格式   ● -e: 测试结束后,生成测试报告   ●