首页 / 知识
如何分析Python测试代码覆盖率?
2023-11-12 13:35:00
在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage。代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码的有效性,即测试case对被测代码的覆盖率几何。
Coverage不仅支持分支覆盖率统计,还可以生成HTML/XML报告。并且XML报告可以结合Jenkins和Sonar集成工具一起使用。
安装
Coverage作为Python的一个第三方库,使用时需要先安装,使用pip命令进行安装。安装命令:pipinstallcoverage
C:\\Users\\TynamYang>pipinstallcoverage
Collectingcoverage
Downloadingcoverage\-5.1-cp37-cp37m-win32.whl\(204kB\)||204kB731kB/s
Installingcollectedpackages:coverage
Successfullyinstalledcoverage\-5.1C:\\Users\\TynamYang\>
安装完成后可以看到安装的版本:coverage-5.1安装完成后使用coverage,coverage有两种使用方法,一种是在命令行中使用,一种是调用API使用。方便控制部分需要测试的代码。
命令行中使用
1、基本参数
命令行中使用时常用参数:
·run–运行Python程序并收集执行数据
·report–报告覆盖率结果
·html–生成HTML文件,内容含覆盖率结果列表
·json–生成JSON文件,内容含覆盖率结果
·xml–生成XML报告文件,内容含覆盖率结果
·erase–清除之前收集的覆盖率数据
·combine–合并多个数据文件
·debug–获取调试信息
可以使用help命令查看帮助:coveragehelp
2、运行代码收集信息
在使用coverage时,基本需要两步运行,第一步运行源代码,收集被测试的源代码覆盖率的信息,第二步生成代码覆盖率的信息报告。
如下测试代码:
#test.py
#coding:utf-8
importunittest
defadd_numb(a,b):
returna+b
defdivision_numb(a,b):
returna/b
classTest(unittest.TestCase):
deftest_add_1(self):
self.assertEqual(add_numb(1,1),2)
deftest_add_2(self):
self.assertEqual(add_numb(2,0),1)
deftest_division_1(self):
self.assertEqual(division_numb(2,1),2)
deftest_division_2(self):
self.assertEqual(division_numb(2,0),2)
if__name__=="__main__":
unittest.main(verbosity=2)
使用命令运行:coverageruntest.py
C:\\Users\\TynamYang\\Desktop>coverageruntest.py
test\_add\_1\(\_\_main\_\_.Test\)...ok
test\_add\_2\(\_\_main\_\_.Test\)...FAIL
test\_division\_1\(\_\_main\_\_.Test\)...ok
test\_division\_2\(\_\_main\_\_.Test\)...ERROR\======================================================================ERROR:test\_division\_2\(\_\_main\_\_.Test\)\----------------------------------------------------------------------Traceback\(mostrecentcalllast\):
File"test.py",line22,intest\_division\_2
self.assertEqual\(division\_numb\(2,0\),2\)
File"test.py",line9,indivision\_numbreturna/b
ZeroDivisionError:divisionbyzero\======================================================================FAIL:test\_add\_2\(\_\_main\_\_.Test\)\----------------------------------------------------------------------Traceback\(mostrecentcalllast\):
File"test.py",line16,intest\_add\_2
self.assertEqual\(add\_numb\(2,0\),1\)
AssertionError:2\!=1
----------------------------------------------------------------------Ran4testsin0.003s
FAILED\(failures\=1,errors=1\)
PSC:\\Users\\TynamYang\\Desktop\>
代码执行完成后会生成一个覆盖率统计结果文件:.coverage。该文件名可通过设置COVERAGE_FILE环境变量进行修改。
以上内容为大家介绍了如何分析Python测试代码覆盖率?,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
Python网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tcpython的单元测试框架
python的单元测试框架,代码,生态,信息,标准,测试,分析,工具,环境,条款,活跃,1、AutotestAutotest是Google、Redhat、IBM公司联合开发的分布式数据科学领域Python比R语言更好
数据科学领域Python比R语言更好,数据,公司,工具,时间,项目,工作,庞大,受益,系统,代码,经常有学员问我们,在数据科学领域里,到底是该选Python呢,python的数据类型
python的数据类型,数字,较大,数据,培训,变量,表示,字符串,赋值,常量,小数,1.整型Python可以处理任意大小的整数,当然包括负整数,在程序中的表示为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规如何提速优化python代码?
如何提速优化python代码?,代码,时间,数据,新增,写法,包装,情况,下来,面临,工作,Python是一种脚本语言,相比C/C++这样的编译语言,在效率和性能方Python语言自带的数据结构有哪些
Python语言自带的数据结构有哪些,异常,数字,数据,元素,序列,培训,位置,名称,分析,括号,Python作为一种脚本语言,其要求强制缩进,使其易读、美观提升Python数据分析能力的方法
提升Python数据分析能力的方法,分析,数据,工具,代码,时间,环境,报告,信息,培训,标准,1.Pandas分析包这个工具的好处是显而易见的。下面的动画Python数据结构的时间复杂性
Python数据结构的时间复杂性,时间,项目,情况,平均,复杂度,培训,术语,数据,状态,操作,1.让我们了解大O符号的含义是什么?在算法中执行许多操作python经典最短代码实现排序的功能
python经典最短代码实现排序的功能,代码,位置,数据,分析,时间,序列,元素,培训,下来,算法,冒泡排序:算法思想:1.比较相邻的元素,如果第一个比第二Python中的两个测试工具
Python中的两个测试工具,代码,情况,测试,设计,通用,名称,庞大,标准,网址,培训,当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者跟踪数据的Python技巧
跟踪数据的Python技巧,信息,数据,工具,项目,位置,培训,总量,灵活,状态,代码,了解如何运用Python的某些数据对象,有利于保持井然有序的状态,避免