测试覆盖率 之 Cobertura的使用

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

什么是代码覆盖率?

代码覆盖率是对整个测试过程中被执行的代码的衡量,它能测量源代码中的哪些语句在测试中被执行,哪些语句尚未被执行。

为什么要测量代码覆盖率?

众所周知,测试可以提高软件版本的质量和可预测性。但是,你知道你的单元测试甚至是你的功能测试实际测试代码的效果如何吗?是否还需要更多的测试?

这些是代码覆盖率可以试图回答的问题。总之,出于以下原因我们需要测量代码覆盖率:

  • 了解我们的测试用例对源代码的测试效果

  • 了解我们是否进行了足够的测试

  • 在软件的整个生命周期内保持测试质量

注:代码覆盖率不是灵丹妙药,覆盖率测量不能替代良好的代码审查和优秀的编程实践。

通常,我们应该采用合理的覆盖目标,力求在代码覆盖率在所有模块中实现均匀覆盖,而不是只看最终数字的是否高到令人满意。

举例:假设代码覆盖率只在某一些模块代码覆盖率很高,但在一些关键模块并没有足够的测试用例覆盖,那样虽然代码覆盖率很高,但并不能说明产品质量就很高。

如果你想学习性能测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

关于Cobertura

Cobertura可以理解为一种测试覆盖率报告方案,通过Cobertura + Maven + Jenkins来实现测试覆盖率的展示。

如何使用Cobertura

1、pom中添加依赖
           <!-- 在clean时把老的ser文件也清理掉 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>.</directory>
                            <includes>
                                <include>**/*.ser</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <formats>
                        <format>html</format>
                        <format>xml</format>
                    </formats>
                    <aggregate>true</aggregate> <!-- 表示会聚合不同子module下的测试报告 -->
                    <check/>
                </configuration>
            </plugin>
2、通过命令行生成报告文件

输入如下命令:

mvn cobertura:cobertura

它会在每个模块以及根目录的target下分别产生.ser文件以及相应覆盖率报告文件。

测试覆盖率 之 Cobertura的使用,测试覆盖率,python,开发语言,测试用例,数据库,we自动化测试

3、覆盖率报告

覆盖率的html报告如下:

测试覆盖率 之 Cobertura的使用,测试覆盖率,python,开发语言,测试用例,数据库,we自动化测试

测试覆盖率 之 Cobertura的使用,测试覆盖率,python,开发语言,测试用例,数据库,we自动化测试

4、其他定制需要

因实际场景需要,排除某些方法,需要调整如下配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
        <includes>
            <include>**/*TestJMock.java</include>
        </includes>
        <excludes>
            <exclude>**/*Test.java</exclude>
        </excludes>
    </configuration>
</plugin>

如果要对测试覆盖率进行控制,一定要达到指定标准呢,做如下配置:

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>cobertura-maven-plugin</artifactId>
 <version>2.7</version>
 <configuration>
     <formats>
         <format>html</format>
         <format>xml</format>
     </formats>
     <aggregate>true</aggregate> <!-- 表示会聚合不同子module下的测试报告 -->
    <check>
        <branchRate>0</branchRate>
        <lineRate>0</lineRate>
        <haltOnFailure>true</haltOnFailure>
        <totalBranchRate>0</totalBranchRate>
        <totalLineRate>0</totalLineRate>
        <packageLineRate>0</packageLineRate>
        <packageBranchRate>0</packageBranchRate>
        <regexes>
            <regex>
                <pattern>com.company.mode.services.*</pattern>
                <branchRate>60</branchRate>
                <lineRate>80</lineRate>
            </regex>
        </regexes>
    </check>
 </configuration>
</plugin>

 通过mvn cobertura:check即可对覆盖率进行校验

这个Maven插件的一些缺陷:

1、不支持lambda表达式,在mvn命令的执行中会报错,即使在通过git仓库下载最新Cobertura代码自己打包生成的jar包,虽然没有报错,但是依然不能正常产生报告

2、根目录下的测试覆盖率文件似乎只是随机选了底下一个module的覆盖率,没有按照我们的设想来:将所有子module的测试覆盖率汇总。

与Jenkins集成

安装Cobertura插件

测试覆盖率 之 Cobertura的使用,测试覆盖率,python,开发语言,测试用例,数据库,we自动化测试

 

设置 Pre Steps

测试覆盖率 之 Cobertura的使用,测试覆盖率,python,开发语言,测试用例,数据库,we自动化测试

添加构建后操作

测试覆盖率 之 Cobertura的使用,测试覆盖率,python,开发语言,测试用例,数据库,we自动化测试

生成覆盖率报告

所有的配置都好了,点击立即构建,即可生成相应的测试覆盖率报告

测试覆盖率 之 Cobertura的使用,测试覆盖率,python,开发语言,测试用例,数据库,we自动化测试

测试覆盖率 之 Cobertura的使用,测试覆盖率,python,开发语言,测试用例,数据库,we自动化测试 到此,关于Cobertura的使用介绍完毕,有兴趣的同学,请自行尝试!文章来源地址https://www.toymoban.com/news/detail-804245.html

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

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

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

相关文章

  • maven工程使用jacoco-maven-plugin插件,无法生成覆盖率测试报告问题

    当我们在maven工程中引入maven-surefire-plugin插件执行单元测试代码后,突然发现在集成jacoco-maven-plugin插件生成测试覆盖率报告时,因为插件参数配置问题,发现无法生成测试报告了。 解决方案 此时, 1、我们在jacoco-maven-plugin插件中定于一个属性 propertyNamesurefireArgLine/propertyNam

    2024年02月13日
    浏览(40)
  • springboot项目使用Junit5 + mockito + jacoco 实现单元测试以及代码覆盖率检查

    在创建springboot项目时会默认添加spring-boot-starter-test依赖,其中已经包含了junit、mockito依赖,根据springboot版本的不同junit和mockito的版本也会有所不同 先说一下各自功能: junit只说一点,junt4和junit5的注解不同,使用方式略有差异,其他不赘述了,基本用法都懂。 mockito是mock的

    2023年04月23日
    浏览(55)
  • 使用 【jacoco】对基于 SpringBoot 和 Dubbo RPC 的项目生成测试覆盖率报告:实践+原理

    基于 Dubbo RPC 的项目中有一个提供者项目backend、一个消费者项目gateway、以及注册中心nacos。本篇文章记录在windows本地对该框架的测试过程,以及介绍jacoco的基本原理 官网下载安装包解压到本地,https://www.jacoco.org/jacoco/ 只需要用到jacoco/lib 文件夹中的 jacocoagent.jar 以及jacococl

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

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

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

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

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

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

    2024年02月12日
    浏览(38)
  • 测试覆盖率 JVM 字节码测试运用 - 远程调试、测试覆盖、影子数据库

    目录 前言: 简介 基础使用方式介绍 工具特性 在软件开发中,测试覆盖率是一个非常重要的指标,它表示代码中所有的测试用例是否都已经被覆盖到。JVM 字节码测试是一种比较新的测试方法,它可以对 JVM 字节码进行测试,从而更加全面地覆盖代码中的所有逻辑。 一个专为

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

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

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

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

    2024年02月02日
    浏览(56)
  • Idea去掉显示的测试覆盖率

    一.启东时 误点击了  快捷键调出 【Ctrl 】+【Alt】+【F6】  

    2024年02月06日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包