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

时间主题9.18(周三)20:00自动化测试框架搭建

在之前的公开课跟公众号文中,我们提到了单元测试覆盖率,今天我们一起来做个小总结。

覆盖率介绍首先来看看什么是单元测试覆盖率:覆盖率是用来衡量单元测试对功能代码的测试情况,通过统计单元测试中对功能代码中行、分支、类等模拟场景数量,来量化说明测试的充分度。代码覆盖率 = 代码的覆盖程度,一种度量方式。它的度量方式包括但是不仅限于以下几种:语句覆盖(度量被测代码中每个可执行语句是否被执行到了)判定覆盖(又称分支覆盖,度量程序中每一个判定的分支是否都被测试到了)条件覆盖(度量判定中的每个子表达式结果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/coverageCoverage安装:pip install coverage使用帮助:使用help命令查看帮助:$ coverage helpCoverage使用对于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方式执行测试并统计覆盖率: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")结果显示:

后续的啰啰嗦嗦当然除了课程内容除了这些基本的介绍,芒果还给大家介绍了,关于Django项目单元测试覆盖率等的使用。

(0)

相关推荐

  • pytest文档57-单元测试代码覆盖率(pytest-cov)

    前言 我们在做测试的时候,经常遇到领导的灵魂拷问:你的测试用例覆盖率是多少,达到100%了么?你如何保证你的测试质量? 测试用例的覆盖率如何统计呢,如何知道开发的代码,我们都测到了,不会存在漏测的情况 ...

  • 接口的单元测试

    作者:HelloGitHub-追梦人物 一个完整的项目,无论是个人的还是公司的,自动化的单元测试是必不可少,否则以后任何的功能改动将成为你的灾难. 假设你正在维护公司的一个项目,这个项目已经开发了几十 ...

  • SAP Spartacus Definition of Done

    SAP Spartacus Definition of Done Coding guidelines Spartacus 团队采用了以下一组规则来保持 Spartacus 代码的可读性和可维护性. 作 ...

  • 第122天:Flask 单元测试

    如果一个软件项目没有经过测试,就像做的菜里没加盐一样.Flask 作为一个 Web 软件项目,如何做单元测试呢,今天我们来了解下,基于 unittest 的 Flask 项目的单元测试. 什么是单元测 ...

  • Python单元测试框架-UnitTest以及测试报告

    时间主题9.4(周三)20:00python单元测试框架 在周三的公众号文中,芒果给大家提前剧透了分层自动化测试过程中最重要的一环--单元测试.晚上的测试运维直播课程中,芒果带着大家一起了解了Pyth ...

  • 分享一个c语言单元测试框架

    来源:https://www.cnblogs.com/pingwen/p/9216004.html 1.简介 CuTest是一款微小的C语言单元测试框,非常简洁,只有2个文件,CuTest.c和CuT ...

  • Python GUI框架有哪些?Linux入门

    GUI,全称为图形用户界面,又称为图形用户接口,是一种人与计算机通信的界面显示格式.那么Python常用GUI框架有哪些呢?我们来看看具体介绍. Tkinter:一个轻量级的跨平台图形用户界面开发工具 ...

  • 15个最受欢迎的Python开源框架

    编辑推荐: 本文来源博客园,主要通过示例演示15个最受欢迎的Python开源框架,希望对您的学习有所帮助. 一.Django: Python Web应用开发框架 Django是一个开放源代码的Web应 ...

  • Python开源框架有哪些?这几个最常见!

    当我们学习python的时候,会遇到很多开源框架,这些框架可以实现很多事情,在不同岗位上都具有重要作用.面对python开源框架,你最中意哪一个呢? 1.Django: Python Web应用开发框 ...

  • Python爬虫框架有哪些?这几种最常见!

    Python之所以被称为"爬虫"的首选语言,主要原因是因为Python拥有很多爬虫框架,不仅功能齐全.优点多,而且可以帮助程序员以更少的代码实现更多的功能,让工作变得更加轻松便利. ...

  • 什么是Python web2py框架?看完就明白了!

    众所周知,Python的框架有很多,除了我们经常提到的Django.flask框架之外,Python还有很多框架是我们没有介绍过的,比如说web2py框架,那么什么是web2py框架呢?它有什么特性? ...

  • 7款好用的Python爬虫框架!

    Python是网络爬虫的首选语言,在爬虫领域有着独特的优势和用途,而且Python还拥有很多爬虫框架,那么你知道哪个Python爬虫框架最高效吗?这几个你一定要知道. 1.Scrapy Scrapy是 ...

  • Python Django框架有什么优势?功能介绍

    Python Django框架是一款全能框架,内置许多模块,极大方便了web开发者,同时它也被称之为Python最重要的框架.那么为什么Django框架很重要呢?我们来看看吧. Django是Pyth ...