eclipse生成测试报告乱码_怎样生成单测覆盖率报告?或许它能帮到忙!

88267cb42006d33b3d149296b37da98f.gif

01

jacoco 简介

jacoco 是一个开源的覆盖率工具,它针对的开发语言是 java。其使用方法很灵活,可以嵌入到 ant、maven 中;可以作为 Eclipse 插件;可以作为 javaAgent 探针监控 java 程序等等。 很多第三方的工具提供了对 jacoco 的集成,如 sonar、jenkins 等等。 jacoco 包含了多种尺度的覆盖率计数器,包含指令级覆盖 (Instructions,C0coverage) 、分支覆盖 (B ranches,C1coverage) 、圈复杂度 (CyclomaticComplexity) 、行覆盖 (Lines) 、方法覆盖 (non-abstract methods) 、类覆盖 (classes) ,其含义如下:
  • 行覆盖率:度量被测程序的每行代码是否被执行,判断标准行中是否至少有一个指令被执行。

  • 类覆盖率:度量计算 class 类文件是否被执行。

  • 分支覆盖率:度量 if 和 switch 语句的分支覆盖情况,计算一个方法里面的总分支数,确定执行和不执行的分支数量。

  • 方法覆盖率:度量被测程序的方法执行情况,是否执行取决于方法中是否有至少一个指令被执行。

  • 指令覆盖:计数单元是单个 java 二进制代码指令,指令覆盖率提供了代码是否被执行的信息,度量完全独立源码格式。

  • 圈复杂度:在(线性)组合中,计算在一个方法里面所有可能路径的最小数目,缺失的复杂度同样表示测试案例没有完全覆盖到这个模块。

02

jacoco 和 maven 集成

2.1 mvn 命令增加参数 在执行 mvn 命令时,加上 "org.jacoco:jacoco-maven-plugin:prepare-agent" 参数即可。 示例: mvn clean test org.jacoco:jacoco-maven-plugin:0.8.5:prepare-agent install -Dmaven.test.failure.ignore=true 其中,jacoco-maven-plugin 后面跟的是jacoco的版本。"-Dmaven.test.failure.ignore=true" 建议加上,否则如果单元测试失败,就会直接中断,不会产生 .exec 文件。 执行以上命令后,会在当前目录的 target 目录下产生一个jacoco.exec文件,该文件就是覆盖率的文件。 总体说来,这种方式比较简单,在与 jenkins 集成时也非常方便。 2.2 在 pom 文件中使用 jacoco 插件 首先,需要添加 jacoco 的依赖:           0.8.5             org.jacoco         jacoco-maven-plugin         ${jacoco.version}         test   接着,我们需要配置 jacoco-maven-plugin 和 maven-surefire-plugin 内容:                               maven-surefire-plugin                                                             -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile=${project.basedir}/target/coverage-reports/jacoco-unit.exec                                         true                                                                     org.jacoco                 jacoco-maven-plugin                 0.8.5                                                         target/coverage-reports/jacoco-unit.exec                                         target/coverage-reports/jacoco-unit.exec                                             **/service/**                                                                                                                 BUNDLE                                                                                                                                    METHOD                                     COVEREDRATIO                                     0.50                                                                                                                                     BRANCH                                     COVEREDRATIO                                     0.50                                                                                                                                     CLASS                                     MISSEDCOUNT                                     0                                                                                                                                                                                     pre-test                                                     prepare-agent                                                                                         post-test                         test                                                     report                                                                                 或标签的值应该是相对于目录 /classes/ 的编译类的类路径(而不是包名),用来指定哪些类需要进行单元测试。 另外 maven 的测试类需要遵循相应的规范命名,否则无法运行测试类,无法生成测试报告以及覆盖率报告。jacoco 使用的是 maven-surefire-plugin 插件,它的默认测试类名规范是:
  • Test*.java:以 Test 开头的 Java 类;

  • *Test.java:以 Test 结尾的 Java 类;

  • *TestCase.java:以 TestCase 结尾的 Java 类;

或者可以在pom中自定义测试类:

org.apache.maven.plugins

maven-surefire-plugin

**/*Tests.java

**/*Test.java

**/Abstract*.java

指定筛选规则。 接着运行 mvn test 生成 index.html,即覆盖率报告

07587b09f391bf1b8b2a87c63ffab8d3.png

9d4b6336d69085ddc5530c174ac4b143.gifEND 9d4b6336d69085ddc5530c174ac4b143.gif

315af9036bad380d8ad27addb9ce6be7.gif

链接:https://www.cnblogs.com/jmcui/p/12843171.html

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除

推荐阅读

点击阅读☞Jacoco统计Web接口/功能测试的代码覆盖率

点击阅读☞跨了个年回来,身边很多人都在补一门叫“测试覆盖率”的课!

点击阅读☞如何在Sonarqube里集成单元测试覆盖率报告?

点击阅读☞一言不合就整新技术,果然大佬是让我们望尘莫及的存在!

点击阅读☞高压下我是如何高效完成测试任务的?只需要换个方法!

5c000802dc9a0374abfd5b96856ed753.gif

12799f00ba160f17ce8056bb4323a4f7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Eclipse是一款常用的集成开发环境(IDE),用于开发Java应用程序。在Eclipse,我们可以通过一些插件和工具来方便地生成和运行单元测试。 首先,在Eclipse,我们可以使用JUnit插件来生成和管理单元测试。JUnit是一个流行的Java单元测试框架,它提供了一系列注解和断言方法,能够方便地编写和执行单元测试。 要生成单元测试,我们首先需要创建一个Java类或方法,然后右键点击该类或方法,在弹出菜单选择“Coverage As”->“JUnit Test”。这将会生成一个测试类,并自动导入JUnit的相关库并创建相应的测试方法。 生成的测试方法会自动使用JUnit的注解进行标记,例如@Test表示该方法是一个单元测试方法。在测试方法,我们可以使用各种断言方法,如assertEquals、assertTrue等来验证代码的正确性。 在生成单元测试后,我们可以通过运行JUnit测试来执行测试代码。只需要右键点击测试类,选择“Run As”->“JUnit Test”,或者使用Eclipse的快捷键Ctrl + F11来运行测试。 运行单元测试后,JUnit将显示测试通过和测试失败的结果,并提供详细的错误信息。我们可以通过查看测试结果来了解代码是否按照预期运行,并且快速定位和修复错误。 此外,Eclipse还提供了一些其他工具和插件来辅助单元测试生成和执行,如Mockito、EasyMock等。这些工具可以帮助我们模拟和控制一些外部依赖,使得单元测试更加简单和高效。 总之,通过Eclipse的JUnit插件和其他辅助工具,我们可以方便地生成和执行单元测试,以确保我们的Java代码质量和正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值