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

从测试的角度来看,当前哪些Java代码覆盖率工具可以显示覆盖率?

甄云
2023-03-14

有许多代码覆盖工具已经到了生命的尽头,这使得查找工具有点困难。我想知道是否有人有使用工具的经验,该工具可以从测试的角度显示Java中Maven项目的代码覆盖率。

大概是这样的:

Test: myTest 
Coverage:covers 30 % of source code.

并将此结果导出为XML或JSON。

雅各科的例子。来自@cesarsotovalero写的信息

运行一个测试方法

mvn clean verify -Dtest=yourTestClass#yourTestMethod

或者使用

mvn clean verify -Dtest=yourTestClass

或者使用

mvn clean test

测试/s的名称现在将存在于\Target\surefire-报告\TEST-你的Test.xml覆盖结果将在\Target\site\Jacoco\jacoco.xml

现在您可以读取测试名称并将其映射到测试结果。在\Target\site\Jacoco\jacoco.xml中的XML底部有一个摘要:

<counter covered="10" missed="19" type="INSTRUCTION"/>

<counter covered="3" missed="5" type="LINE"/>

<counter covered="3" missed="2" type="COMPLEXITY"/>

<counter covered="3" missed="2" type="METHOD"/>

<counter covered="2" missed="0" type="CLASS"/>

测试覆盖率在\Target\surefire-报告\TEST-你的Test.xml中3 / (3 5) = 37,5%

共有1个答案

锺离卓
2023-03-14

杰科科完全按照你的要求做。将其作为插件添加pom。Maven项目的xml文件如下:

<build>
      <plugins>
         <!-- JaCoCo plugin-->
         <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.5</version>
            <executions>
               <execution>
                  <goals>
                     <goal>prepare-agent</goal>
                  </goals>
               </execution>
               <execution>
                  <id>report</id>
                  <phase>prepare-package</phase>
                  <goals>
                     <goal>report</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
      </plugins>
</build>

要获取单个测试的覆盖率%,请运行:

mvn clean verify -Dtest=myTestClass#myTestMethod

覆盖结果将导出到./Target/site/Jacoco/jacoco.xml。此外,一个漂亮的超文本标记语言报告将在./Target/site/Jacoco/index.html生成。

您可以解析jacoco。xml文件以获取测试的覆盖率w.r.t测试类:(包含行缺失行)/包含行

 类似资料:
  • 这是我的nodejs类型脚本类和ISHELTHY()公共方法的书面jest单元测试。 测试覆盖率表明这一点。pingCheck()则不包括block、catch和last return语句。请告知。 我们可以做pingcheck私有方法的单元测试吗? 这是我的课 这是我的单元测试代码。我在运行npm运行测试时遇到以下错误 (节点:7876)未处理的PromisejectionWarning:Typ

  • Jacoco插件在jenkins报告中显示0%的覆盖率,但当我在本地系统中运行相同的命令时,Jacoco会正确生成报告。我正在使用以下命令: mvn-s xyz/settings.xml-f xyz/xyz/pom.xml清洁安装org.jacoco 所以当我在jenkins中运行这个命令时,它会生成错误的报告。我已经检查了它在工作区目录对应的项目在詹金斯。它显示每个项目的0%覆盖率。但是当我在本

  • 我的java应用现在有45%的代码覆盖率。我一直在添加新的测试,它们被我的应用程序(通过mvn测试和Intellij显示覆盖率)和Sonarqube扫描。 这是我的测试文件: 我正在尝试向以下文件添加代码覆盖率: 在本地,我可以看到该文件的代码覆盖率为100%,但在Sonarqube上显示为0%。有人知道为什么吗?我知道Sonarqube设置正确,因为它已经将我的其他文件的覆盖率提高了%。 我使用

  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  • 新的一年 之前因为上家公司的经营出了问题,年前的大裁员,过了一个漫长的春节。 之后加入了新公司,然后正好赶上一个很紧急的项目,忙成狗,因此好久没更新文章了。 不过,我又回来啦! 前言 自动化测试,我们将使用karma和nightmare,内容会包括: 单元测试 e2e测试(放下一篇文章) 其实,单元测试一般用在写公共包的时候,比如通用的js函数库,通用的UI组件库。基本不太会在做业务项目的时候还使

  • 11.3. 测试覆盖率 就其性质而言,测试不可能是完整的。计算机科学家Edsger Dijkstra曾说过:“测试能证明缺陷存在,而无法证明没有缺陷。”再多的测试也不能证明一个程序没有BUG。在最好的情况下,测试可以增强我们的信心:代码在很多重要场景下是可以正常工作的。 对待测程序执行的测试的程度称为测试的覆盖率。测试覆盖率并不能量化——即使最简单的程序的动态也是难以精确测量的——但是有启发式方法