python单元测试框架pytest介绍
pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试、自动化测试工作中。
unittest也是python语言中一款单元测试框架,但是功能有限,没有pytest灵活。
就像:苹果电脑mac air和mac pro一样。都是具备同样的功能,但是好用,和更好用。
本文包含以下几个内容点:
- 1)pytest的简单示例
- 2)pytest的安装
- 3)pytest的特征、与unittest的区别。
- 4) pytest如何自动识别用例。
- 5)pytest框架中,用例的运行顺序。
import randomdef test_demo():assert 7 == random.randint(0,10)
运行结果如下:
============================= test session starts =============================platform win32 -- Python 3.7.2, pytest-4.6.3, py-1.8.0, pluggy-0.12.0rootdir: D:\Pychram-Workspace\STUDY_PYTESTplugins: allure-pytest-2.6.5, html-1.21.1, metadata-1.8.0, rerunfailures-7.0collected 1 item simple.py Fsimple.py:10 (test_demo)7 != 6 Expected :6Actual:7 ========================== 1 failed in 0.14 seconds ===========================
2)pytest的安装 安装命令:
pip install pytest
3)pytest的特征、与unittest的区别。 pytest的特征如下:
- 3.1 自动识别测试用例。(unittest当中,需要引入TestSuite,主动加载测试用例。)
- 3.2 简单的断言表达:assert表达式即可。(unittest当中,self.assert*)
- 3.3 有测试会话、测试模块、测试类、测试函数级别的fixture。(unittest当中是测试类、测试函数级别的fixture)
- 3.4有非常丰富的插件,目前在600+,比如allure插件。(unittest无)
- 3.5测试用例不需要封装在测试类当中。(unittest中需要自定义类并继承TestCase)
4) pytest如何自动识别用例 【python单元测试框架pytest介绍】识别规则如下:
1、搜索根目录:默认从当前目录中搜集测试用例,即在哪个目录下运行pytest命令,则从哪个目录当中搜索;
2、搜索规则:
1)搜索文件:符合命名规则 test_*.py 或者 *_test.py 的文件
2)在满足1)的文件中识别用例的规则:
- 2.1)以test_开头的函数名;
- 2.2)以Test开头的测试类(没有__init__函数)当中,以test_开头的函数
在包当中,创建一个测试用例文件:test_sample_1.py。文件内容如下:
#!/usr/bin/python3 # -*- coding: utf-8 -*- # 定义py文件下的测试用例 def test_sample():print("我是测试用例!") class TestSample:def test_ss(self):print("我也是测试用例!")def hello_pytest(self):print("hi,pytest,我不是用例哦!!")
按照上面定义的搜索规则,需要跳转到工程目录,然后再执行命令:
pytest -v
。 执行结果如下:文章图片
让我们愉快的加进来第2个测试文件:test_sample_2.py,内容如下:
#!/usr/bin/python3# -*- coding: utf-8 -*- def add(a,*args):sum = afor item in args:sum += itemreturn sum def test_add_two_number():assert 33 == add(11,22)assert 55.55 == add(22.22,33.33) def test_add_three_number():assert 101 == add(10,90,1)
再次运行命令:
pytest -v
得到如下结果:文章图片
通过多个用例文件的执行,可以看出用例的执行顺序。
5) pytest中用例的执行顺序 原则:先搜索到的py文件中的用例,先执行。在同一py文件当中,按照代码顺序,先搜索到的用例先执行。
到此这篇关于python单元测试框架pytest的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- 测试一下Pinia,Vuex 要出局了()
- 遥感数据python编程|python读取nc数据并绘图
- 期末人福音——用Python写个自动批改作业系统
- 如何利用python读取图片属性信息
- python的多线程原来可以这样解
- Python中的列表条件求和方法
- 垃圾识别系统|垃圾识别系统 Python+TensorFlow项目
- python|python pdfplumber库批量提取pdf表格数据转换为excel
- Mac下使用HomeBrew安装python3
- pytest之执行测试pytest.main()的使用