【Maven】单元测试、统计、覆盖率相关插件使用介绍

这篇具有很好参考价值的文章主要介绍了【Maven】单元测试、统计、覆盖率相关插件使用介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

maven-surefire-plugin

  • maven-surefire-pluginmaven执行单元测试的插件,不显性配置也可以直接使用。
  • 这个插件的surefire:test命令会默认绑定maven执行的test阶段。
  • 执行结束后,默认在target/surefire-reports目录下会生成txtxml两种格式的结果,不利于直观展示,需要结合其它插件一起使用。

如果你自己声明了,那么可以指定自己的版本,并且可以配置自定义的参数。

配置示例

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!-- 是否忽略单元测试 -->
        <skipTests>false</skipTests>
        <!-- 是否忽略执行执行的单元测试 -->
        <testFailureIgnore>true</testFailureIgnore>
        <argLine>${argLine}</argLine>
    </configuration>
</plugin>
  • argLine参数说明
  • jacoco:report-aggregate聚合报告后,覆盖率显示为0,与这个参数有关
  • jacoco在prepare-agent阶段会生成一个属性指向jacoco的runtime agent,默认这个属性叫argLine
  • 需要在maven-surefire-plugin的配置中,引用这个属性

maven-surefire-report-plugin

为单元测试生成html报告,默认位置target/site/surefire-report.html

配置示例

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-report-plugin</artifactId>
    <version>${maven-surefire-report-plugin.version}</version>
    <executions>
        <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

执行mvn test时,会生成报告

效果预览

【Maven】单元测试、统计、覆盖率相关插件使用介绍

jacoco-maven-plugin

用于生成代码覆盖率报告,可以帮助我们了解代码中哪些部分已经被测试覆盖,哪些部分需要更多的测试,默认位置target/site/jacoco/index.html

配置示例

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
            <configuration>
                <!-- 需要修改maven-surefire-plugin插件的<argLine>配置,默认是argLine -->
                <propertyName>argLine</propertyName>
            </configuration>
        </execution>
        <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!--是否使用追加的模式,如果为false,新的报告会替换旧的报告-->
        <append>false</append>
        <!-- rules里面指定覆盖规则 -->
        <rules>
            <rule implementation="org.jacoco.maven.RuleConfiguration">
                <element>BUNDLE</element>
                <limits>
                    <!-- 指定方法覆盖到80% -->
                    <limit implementation="org.jacoco.report.check.Limit">
                        <counter>METHOD</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.80</minimum>
                    </limit>
                    <!-- 指定指令覆盖到80% -->
                    <limit implementation="org.jacoco.report.check.Limit">
                        <counter>INSTRUCTION</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.80</minimum>
                    </limit>
                    <!-- 指定行覆盖到80% -->
                    <limit implementation="org.jacoco.report.check.Limit">
                        <counter>LINE</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.80</minimum>
                    </limit>
                    <!-- 指定类覆盖到100%,不能遗失任何类 -->
                    <limit implementation="org.jacoco.report.check.Limit">
                        <counter>CLASS</counter>
                        <value>MISSEDCOUNT</value>
                        <maximum>0</maximum>
                    </limit>
                </limits>
            </rule>
        </rules>
    </configuration>
</plugin>

效果展示

【Maven】单元测试、统计、覆盖率相关插件使用介绍

如果覆盖率显示为0,需要修改maven-surefire-plugin插件的配置

【Maven】单元测试、统计、覆盖率相关插件使用介绍文章来源地址https://www.toymoban.com/news/detail-473416.html

到了这里,关于【Maven】单元测试、统计、覆盖率相关插件使用介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【好物推荐】一款帮我快速达成单元测试的覆盖率指标的IDEA插件 —— TestMe

    TestMe 是一个可以帮助您快速达成单元测试覆盖率指标的 IDEA 插件。 它可以帮助您自动生成测试用例,从而确保您的代码覆盖率达到所需的覆盖率。 请注意,TestMe 插件只是一个辅助工具,它可以帮助您自动生成测试用例,但单元测试的质量和覆盖率的可靠性仍然取决于您的代

    2024年02月13日
    浏览(45)
  • IDFA 单元测试以及单元测试覆盖率步骤

    1、新建java类 随意选择java类文件,新建一个Java类CountVowel,用来统计字符串中元音的个数,代码如下: 2、生成测试类 一)、对写好的类新建测试类,有以下两种方法: 将鼠标光标移动到类名上,使用 Alt+Enter 组合键,如下图,选择 Create Test ,从而新建一个测试类; 右键点

    2024年02月16日
    浏览(43)
  • 如何计算单元测试的覆盖率

    单元测试的覆盖率有:语句覆盖率(即行覆盖率)、分支覆盖率、条件覆盖率、分支条件覆盖率、路径覆盖率等。 语句覆盖率 所谓语句就是那些非分支、非判断的语句。 计算公式:程序执行到的语句总数 / 全部语句的总数 分支覆盖率 有判定语句的地方都会出现2个分支。

    2024年01月21日
    浏览(48)
  • java 单元测试覆盖率调研

    根据网上的资料搜索发现,现在常用的 java 单元测试覆盖率工具主要有: Emma Cobertura Jacoco Clover(商用) 工具 Jacoco Emma Cobertura 原理 使用 ASM 修改字节码 修改 jar 文件,class 文件字节码文件 基于 jcoverage,基于 asm 框架对 class 文件插桩 覆盖粒度 行,类,方法,指令,分支 行,类

    2024年02月12日
    浏览(41)
  • 单元测试——测试代码功能及代码覆盖率

    目录 目录 前言 一、单元测试是什么? 二、前置准备  三、测试代码  四、示例  五:单元测试覆盖率 单元测试的写法不固定,这里以我自己的一种写法为例,算是很简单的一种写法           单元测试其实就是写一些测试函数,测试代码的功能是否正常运行,一般如果

    2024年02月07日
    浏览(40)
  • Sonarqube-8.9版本测试单元测试覆盖率

    junit testNG Spock Jacoco Cobertura SonarQube 不会运行测试或生成报告。要在分析中包含覆盖结果,需要设置第三方覆盖工具来生成报告并配置 SonarQube 以导入这些报告。 生成单元测试覆盖率需要按照以下步骤操作: SonarQube 使用导入的覆盖率报告中的覆盖行和可执行行(或要覆盖的行

    2024年02月02日
    浏览(58)
  • Lombok导致代码单元测试覆盖率崩塌

    Lombok 由于其使用的便利性, 目前流传非常广泛。甚至有呼声希望其能被Java官方引入,成为JDK的一部分。 当然凡事都有两面性,Lombok的引入也是有代价的。一时注释一时爽,结果导致代码在不知不觉中翻了好几倍。 例如以下几个简单的注解,背后是N多个自动生成的方法: @Da

    2024年02月07日
    浏览(43)
  • 如何有效保证Java代码单元测试覆盖率

    我们在实际项目开发过程中,不同level的童鞋由于专业技能的层次不同,导致在参与实际开发的业务代码中经常会出现各种bug,项目管理中好的pm或许会给充足的时间来让开发童鞋们定位修复这些bug,也有各种客观原因的PM不会在项目中预留这些时间,往往就需要开发自己通过

    2023年04月17日
    浏览(48)
  • 13.Springboot整合junit5单元测试与生成单元测试覆盖率

    现在基本大公司都要求单元测试了,保证我们代码得质量,而我司更是要求覆盖率要达到60%以上,所以搞一下。 这里有两个方法: 1.使用maven自带得test,idea右侧maven模块执行项目下得test 2.使用cmd命令,在你的项目pom文件所在目录 ,打开cmd,执行如下: 结果如下:打开site文

    2024年02月16日
    浏览(39)
  • 【项目实战】使用Maven插件(jacoco-maven-plugin),实现生成代码覆盖率报告

    jacoco-maven-plugin是一个Maven插件,用于生成代码覆盖率报告。 它可以帮助您了解您的代码中哪些部分已经被测试覆盖,哪些部分需要更多的测试。 注意,jacoco-maven-plugin 需要 Java 1.5 或更高版本才能运行。 要使用jacoco-maven-plugin,需要在Maven项目中添加以下配置:

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包