pytest 单元测试,搭建pytest测试框架
本文介绍python的单元测试框架pytest,通过示例代码对其进行了非常详细的介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
Py是python语言中功能强大的单元pytesting框架,用于管理和组织测试用例,可应用于单元测试和自动化测试。
Unittest也是python语言的单元测试框架,但是功能有限,没有pytest灵活。
就像:苹果mac air和mac pro。都是一样的功能,但是好用,更好用。
这篇文章包含以下几点:
1)pytest的简单例子2)pytest的安装3)pytest的特点及其与unittest的区别。pytest如何自动识别用例。5)在5)pytest框架中,用例的运行顺序。
1)pytest写用例很简单
这里有一个简单的例子:
随机导入
def测试_演示():
assert 7==random.randint(0,10)
运行结果如下:
==========================测试会话开始=========================
平台win32 - Python 3.7.2,pytest-4.6.3,py-1.8.0,pluggy-0.12.0
rootdir :d : Pychram-Workspace STUDY _ py test
插件: allure-pytest-2.6.5,html-1.21.1,元数据-1.8.0,rerunfailures-7.0收集了1个项目
简单. py F
simple.py:10(测试_演示)
7 !=6
预期:6
实际:7
========================0.14秒1失败========================
2)pytest的安装
安装命令:
pip安装pytest
3)pytest的特征、与unittest的区别。
Py的特征如下:
3.1测试用例的自动识别。(在unittest中,需要引入TestSuite来主动加载测试用例。)3.2简单断言表达式:断言表达式就够了。(在unittest中,self.assert*)3.3在测试会话、测试模块、测试类和测试函数级别都有fixture。(unittest是测试类和测试函数级的fixture)3.4有非常丰富的插件,目前在600个,比如allure插件。(unittest None) 3.5测试用例不需要封装在测试类中。(unittest需要自定义类,继承TestCase)那么pytest是如何自动识别测试用例的呢?在编写pytest用例时,我们需要遵循哪些规则?
4) pytest如何自动识别用例
识别规则如下:
1.搜索根目录:默认从当前目录收集测试用例,即会搜索pytest命令运行的目录;
2.搜索规则:
1)搜索文件:符合命名规则test_*的文件。py或* _ test.py
2)在满足1)的文件中识别用例的规则:
2.1)以test_开头的函数名;2.2)以Test开头的测试类中(没有__init__ function),以test_开头的函数示例:在D:pycharm_workspace目录中,创建一个名为study_pytest的python项目。在Project下,创建一个名为TestCases的python包。
在包中,创建一个测试用例文件:test _ sample _ 1.py,文档内容如下:
#!/usr/bin/python3
# -*-编码: utf-8 -*-
#在py文件下定义测试用例
定义测试样本():
打印(我是一个测试用例!)
类TestSample:
def test_ss(自我):
打印(我也是测试用例!)
def hello_pytest(self):
print(‘嗨,pytest,我不是用例!)
根据上面定义的搜索规则,需要跳转到项目目录,然后执行命令:pytest -v v .执行结果如下:
让我们愉快地添加第二个测试文件:test_sample_2.py,内容如下:
#!/usr/bin/python3
# -*-编码: utf-8 -*-
def add(a *,args):
总和=a
对于args:中的项目
总和=项目
返回总和
def test_add_two_number():
assert 33==add(11,22)
断言55.55==add(22.22,33.33)
def测试_添加_三个_编号():
断言101==add(10,90,1)
再次运行命令:pytest -v以获得以下结果:
通过多个用例文件的执行,我们可以看到用例的执行顺序。
5) pytest中用例的执行顺序
原理:先搜索py文件中的用例,先执行。在同一个py文件中,根据代码顺序,首先执行第一个搜索到的用例。
关于python单元测试框架pytest的这篇文章到此为止。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。