1、pytest简介
Pytest是Python的一种单元测试框架,与Python自带的unittest测试框架类似,但是比 unittest框架使用起来更简洁,效率更高。
2、pytest特点
Pytest是一个非常成熟的Python测试框架,主要特点有以下几点:
- 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
- 能够支持简单的单元测试和复杂的功能测试
- 支持参数化
- 执行测试过程中可以将某些测试用例跳过(skip),或者对某些预期失败的case标记成失败
- 支持重复执行(rerun)失败的 case
- 支持运行由 nose, unittest 编写的测试 case
- 可生成html 报告
- 方便jenkins持续集成
- 可支持执行部分用例
- 具有很多第三方插件,并且可以自定义扩展
3、pytest安装
在安装pytest前,首先要确保python环境和pip装包工具正确安装,方法如下:
cmd命令行输入python,下图表示已经正常安装python 3.9.12版本
cmd命令行输入pip -V,下图表示 pip装包工具已经安装好了
安装pytest cmd执行命令 pip install pytest
确认pytest是否安装成功,cmd执行命令 pip list
以上步骤确认无误后,就代表pytest已经正常安装了。
4、pytest示例运行
打开pycharm工具新建一个项目pytest_demo
新建一个py文件如test_one.py
def test_pass(): assert 1 + 1 == 2
class TestDemo: def test_one(self): assert 1 + 1 > 2 def test_two(self): assert 1 + 1 == 2 def test_three(self): assert 1 + 1 < 2
pytest用例编写规则如下:
- 测试文件以test_开头(以_test结尾也可以)
- 测试类以Test开头,并且不能带有 __init__ 方法
- 测试函数以test_开头
- 断言使用基本的assert即可
pytest运行用例方法如下:
- pytest tests/ 执行tests文件目录下的所有用例
- pytest test_mod.py::test_func 运行test_mod.py.py 模块里面的函数test_func
- pytest test_mod.py::TestClass::test_method运行test_mod.py模块里面测试类TestClass里面的test_method 方法
运行示例1:
在pycharm终端中执行命令 :pytest .\test_one.py::test_pass
上图表示1条case执行成功pass。
运行示例2:
在pycharm终端中执行命令:pytest .\test_one.py::TestDemo
上图表示该测试类有2条case执行成功,1条case执行失败,并抛出了错误日志。