| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> Python单元测试unittest -> 正文阅读 |
|
[开发测试]Python单元测试unittest |
1.单元测试对功能/代码的最小单元进行测试。 对函数或者类当中的方法进行测试就是单元测试。 在python当中进行测试时,使用assert,而不是if... 语法:assert?预期结果 ==?实际结果 当使用assert进行断言时,如果测试通过,程序正常执行,测试不通过会报错AssertionError # if actual == expected: # print('ok') # else: # print('not ok') # assert 断言 assert actual == expected 在不使用任何框架的前提下,其实也是可以进行单元测试的,比如我们可以通过if判断、异常处理或者是其他的流程控制来表示测试是否通过。
?运行结果: 当测试不通过时,报错AssertionError,这时可以使用try...expect去捕获异常,这样不会影响后续的代码运行。
当没有使用单元测试框架之前,我们确实可以做自动化测试,但需要手工做到以下几点: 1)测试用例函数,手工去调用测试函数; 2)当用例失败之后,需要加try捕获异常,才不会影响后续代码运行; 3)怎么去收集用例放到一个统一的模块里面; 4)还要手工写测试报告。 而使用单元测试框架,可以极大的简化我们对单元测试的过程,使用单元测试框架以后,框架会帮我们自动去收集用例,运行用例,生成报告。 2.单元测试框架本质是提供一个工具的集合,我们直接使用就可以,使用手工完成的步骤它都可以自动完成。 unittest是python内置的单元测试框架,不需要安装;pytest是第三方单元测试框架,需要安装,但功能更强大。 unittest框架的特点: 1.带来的好处是便利; 2.但是学习成本也高,既定的框架都有相应的规则,我们使用它,就要遵守它的规则; 3.unittest也需要遵守很多规则。 unittest的几个概念:
Test Case unittest用法: 1.继承unittest.TestCase,编写以test_开头的方法名作为测试用例 2.使用unittest运行用例(代码左侧的播放键) 3.self.assertEqual(actual, expected)比对结果
运行结果:(.表示运行通过,F表示不通过且给出预期和实际结果) ?收集用例 suite = unittest.defaultTestLoader.discover('目录名','test*.py')--找到该目录下的所有以test开头的py文件,'test*.py'可省略不写,同一层级目录下,目录名可为空 运行用例 runner = unittest.TextTestRunner() runner.run(suite) 现在我们将所有的测试用例都放在tests这个文件夹内的test_unittest.py文件内,test_demo是新建的py文件,run.py是收集用例和运行用例的文件,各文件目录如下图所示: ?test_demo.py文件内容如下:
test_unittest.py文件内容如下:
run.py文件内容如下:
run.py运行结果: ?生成测试报告
import unittestreport # title='',tester='',templates=1/2/3 可以省略,使用默认值 runner = unittestreport.TestRunner(suite,title='',tester='',templates=1/2/3) runner.run() 此时run.py文件内容如下:
运行结果如下: 查看报告内容:报告是html格式的文件,直接点击浏览器图标,可在浏览器中查看报告内容。 ?截取浏览器中部分效果图如下:
from BeautifulReport import BeautifulReport 或者 import BeautifulReport runner = BeautifulReport(suite) runner.report('测试报告') 安装unittestreport 第一种方法:位置:File->Settings->Project:文件名->Project Interpreter:点击+号在弹出界面中搜索“unittestreport”,然后点击底部【Install Package】按钮。 ?第二种方法:切换到Terminal界面,输入pip install unittestreport,回车即可。 安装beautifulreport 切换到Terminal界面,输入pip install beautifulreport,回车即可。 如果pip?install安装不成功,可能是因为安装服务部署在国外,不能响应导致中断,可以使用python国内镜像库进行安装,安装命令: unittestreport:pip install -i?http://mirrors.aliyun.com/pypi/simple/?unittestreport beautifulreport:pip install -i??http://mirrors.aliyun.com/pypi/simple/?beautifulreport |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 0:23:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |