前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python单元测试框架覆盖率-Coverage

Python单元测试框架覆盖率-Coverage

作者头像
Criss@陈磊
发布于 2019-09-25 07:35:50
发布于 2019-09-25 07:35:50
4.7K00
代码可运行
举报
文章被收录于专栏:测试技术圈测试技术圈
运行总次数:0
代码可运行

覆盖率介绍

首先来看看什么是单元测试覆盖率

覆盖率是用来衡量单元测试对功能代码的测试情况,通过统计单元测试中对功能代码中行、分支、类等模拟场景数量,来量化说明测试的充分度。

代码覆盖率 = 代码的覆盖程度,一种度量方式。

它的度量方式包括但是不仅限于以下几种:

语句覆盖(度量被测代码中每个可执行语句是否被执行到了)

判定覆盖(又称分支覆盖,度量程序中每一个判定的分支是否都被测试到了)

条件覆盖(度量判定中的每个子表达式结果true和false是否被测试到了)

路径覆盖(度量了是否函数的每一个分支都被执行了)

组合覆盖等

那么对于Python项目又如果对它的单元测试覆盖率进行分析呢?

当然同Java的JaCoCo、Cobertura等一样,Python也有自己的单元测试覆盖率统计工具,Coverage就是其中一种。

Coverage介绍与安装

Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码对被测代码的覆盖率如何。可以高亮显示代码中哪些语句未被执行,哪些执行了,方便单测。并且,coverage支持分支覆盖率统计,可以生成HTML/XML报告。

官方文档:http://coverage.readthedocs.org/en/latest/

获取地址:http://pypi.python.org/pypi/coverage

Coverage安装:

pip install coverage

使用帮助:

使用help命令查看帮助:$ coverage help

Coverage使用

对于Coverage的使用,比较简单,直接coverage run命令去执行已经写好的单元测试用例就可以了。

执行单元测试:

coverage run test.py arg1 arg2

这里test.py是已经完成的测试用例脚本,arg1 arg2是test.py执行需要的参数。

执行结束后,会自动生成一个覆盖率统计结果文件(data file):.coverage。当然这个文件里面一大堆数字是不方便我们查看的。

所以我们使用另外一条命令查看覆盖统计结果:coverage report。

这里

Stmts:表示语句总数

Miss:未执行到的语句数

Cover=(Stmts-Miss)/Stmts

当然也可以生成更加清理明了的html测试报告:

coverage html -d report

这里-d指定html文件夹。

生成的报告直接关联代码,高亮显示覆盖和未覆盖的代码,支持排序。-d指定html文件夹。

通过点击其中的各个py文件可以看到各自的代码被执行情况

当然还可以通过API方式执行测试并统计覆盖率:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cov = coverage.coverage(source=["course_search"])
cov.start()

suite = unittest.defaultTestLoader.discover(os.getcwd(), "test_course_search.py")
unittest.TextTestRunner().run(suite)

cov.stop()
cov.report()
cov.html_report(directory="report_html_01")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python代码覆盖率分析工具----Coverage
在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage。代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码的有效性,即测试case对被测代码的覆盖率几何。 Coverage支不仅持分支覆盖率统计,还可以生成HTML/XML报告。并且XML报告可以结合Jenkins和Sonar集成工具一起使用。 Coverage官方文档:http://coverage.readthedocs.org/en/latest/
我被狗咬了
2020/06/17
5.4K0
Python - 测试覆盖率统计
在python代码进行单元测试的时候,我们总会遇到这样的问题,如何来统计我们的代码所有分支的测试?本文带你了解,如何快速的掌握代码的覆盖率。
雷子
2023/10/23
4090
Python - 测试覆盖率统计
聊聊 Python 代码覆盖率工具 - Coverage
单元测试代码覆盖率作为一种度量方式,可以计算单元测试用例对于被测代码的覆盖程度,即:被执行的代码数量和代码总数量的比值
AirPython
2020/07/22
1.5K0
pytest文档57-单元测试代码覆盖率(pytest-cov)
我们在做测试的时候,经常遇到领导的灵魂拷问:你的测试用例覆盖率是多少,达到100%了么?你如何保证你的测试质量? 测试用例的覆盖率如何统计呢,如何知道开发的代码,我们都测到了,不会存在漏测的情况。
上海-悠悠
2020/09/18
5K0
用Python进行单元测试
Python编程语言,不仅仅在机器学习、数据分析等领域大放异彩,在web开发中等软件开发中,使用者也越来越多。
老齐
2021/04/19
3.2K0
用Python进行单元测试
统计 Django 项目的测试覆盖率
我们完成了对 blog 应用和 comment 应用这两个核心 app 的测试。现在我们想知道的是究竟测试效果怎么样呢?测试充分吗?测试全面吗?还有没有没有测到的地方呢?
HelloGitHub
2021/05/14
9570
如何使用Python进行单元测试
在我的日常工作中,我是一名专业程序员。我使用c++、c#和Javascript。我是一个开发团队的一员,他们使用单元测试来验证我们的代码是否按照它应该的方式工作。
HuangWeiAI
2021/04/21
2.8K0
如何使用Python进行单元测试
统计代码测试覆盖率-Python
衡量Unit Test(单元测试)是否充分, 覆盖率是一个必要指标, 是检验单元测试的重要依据, 这里针对python unittest 的单元测试覆盖率coverage进行分享.
louiezhou001
2019/07/24
9670
统计代码测试覆盖率-Python
Python中的单元测试与代码覆盖率:实践与问题解决
当我们开发软件时,单元测试和代码覆盖率是非常重要的工具。它们可以帮助我们验证代码的正确性,并确保代码的质量和稳定性。在Python中,我们有很多强大的工具和库来进行单元测试和代码覆盖率分析。本文将向你分享在Python中进行单元测试和代码覆盖率分析的实践经验和一些常见问题的解决方案。
华科云商小徐
2023/09/26
3410
Java代码覆盖率历史发展轨迹
作为一个测试人员,保证产品的软件质量是其工作首要目标,为了这个目标,测试人员常常会通过很多手段或工具来加以保证,覆盖率就是其中一环比较重要的环节。
JavaEdge
2020/05/27
1.3K0
单元测试工具(连载9)
利用coverage工具可以分析单元测试的覆盖率,首先我们通过pip命令下载coverage。
顾翔
2019/12/12
4470
单元测试工具(连载9)
python代码覆盖率工具——cover
今天发现了一个好用的python代码覆盖率检查工具:coverage, 可以高亮显示代码中哪些语句未被执行,哪些执行了,方便单测。
py3study
2020/01/03
8910
单元测试必备:Asp.Net Core代码覆盖率实战,打造可靠应用!
在前几章我们深度讲解了单元测试和集成测试的基础知识,这一章我们来讲解一下代码覆盖率,代码覆盖率是单元测试运行的度量值,覆盖率通常以百分比表示,用于衡量代码被测试覆盖的程度,帮助开发人员评估测试用例的质量和代码的健壮性。常见的覆盖率包括语句覆盖率(Line Coverage)、分支覆盖率(Branch Coverage)、路径覆盖率(Path Coverage)等,不同类型的覆盖率可以帮助开发人员更全面地了解测试用例对代码的覆盖情况,从而改进测试策略和提高代码质量。
郑子铭
2024/05/10
3220
单元测试必备:Asp.Net Core代码覆盖率实战,打造可靠应用!
coverage教程(译)
coverage是一个检测单元测试覆盖率的工具,即检查你的测试用例是否覆盖到了所有的代码。
py3study
2020/01/06
2K0
jacoco 生成单测覆盖率报告
jacoco 是一个开源的覆盖率工具,它针对的开发语言是 java。其使用方法很灵活,可以嵌入到 ant、maven 中;可以作为 Eclipse 插件;可以作为 javaAgent 探针监控 java 程序等等。
JMCui
2020/05/09
3.4K0
jacoco 生成单测覆盖率报告
都100%代码覆盖了,还会有什么问题?
(图片来自:http://t.cn/R06rQHi) 引言 很多人看到这个标题时,都会想“你都100%代码覆盖了,怎么还会有问题呢?” 让我们看一下代码例子: public class TestCalculator { public Double add(Double a, Double b) { return a + b;} } 再看看用junit写出的测试代码: @Test public void testAdd() { Double a = new Double(1);
ThoughtWorks
2018/04/13
9390
都100%代码覆盖了,还会有什么问题?
关于代码覆盖率(Code Coverage)
最近做了一些关于代码覆盖率工具的调查,对一些主流的代码覆盖率的工具比如 Gcov,JaCoCo,Istanbul 等都做了一些实践和持续集成的工作,也有了一定的了解。
Peter Shen
2021/08/26
1.7K0
C++语言的单元测试与代码覆盖率
直接交付没有经过测试的代码是不太好的,因为这很可能会浪费整个团队的时间,在一些原本早期就可以发现的问题上。而单元测试,就是发现问题一个很重要的环节。
顾翔
2019/12/11
3.3K0
C++语言的单元测试与代码覆盖率
《软件测试52讲》读书笔记 —— 你真的懂测试覆盖率吗?
定义:指测试对需求的覆盖程度,通常的做法是将每一条分解后的软件需求和对应的测试用例建立一对多的映射关系,最终目标是保证测试可以覆盖每个需求
小菠萝测试笔记
2020/06/09
5210
super-jacoco单元测试覆盖率度量实践-1
代码覆盖率,尤其是增量代码覆盖率,是质量门禁的重要指标之一。由于一些不可名状的原因,团队原先提供质量门禁服务的工具暂时停服了,因此需要另外寻找一个工具来代替提供此项服务。于是,笔者就Super-Jacoco做了一个简单的POC。
Antony
2022/02/08
1.6K0
super-jacoco单元测试覆盖率度量实践-1
相关推荐
Python代码覆盖率分析工具----Coverage
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文