前言:pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效,支持315种以上的插件,同时兼容 unittest 框架。这就使得我们在 unittest 框架迁移到 pytest 框架的时候不需要重写代码。
一、安装pytest
首先使用 pip 安装 pytest
pip3 install pytest
查看 pytest 是否安装成功
pip3 show pytest
二、命名规范
1、默认搜索规则:
如果pytest命令行有指定目录,则从该目录中开始查找测试用例文件,如果没有指定,则从当前运行目录开始查找文件。注意,该查找是递归查找,子目录中的文件也会被查找到。
并不是能够查找到目录下的所有文件,只有符合命名规则的文件才会被查找。默认规则是以test_开头或者以_test结尾的.py文件。
在测试文件中查找Test开头的类,以及类中以test_开头的方法,查找测试文件中test_开头的函数。
2、测试用例默认命名规则:
.py 测试文件必须以test_开头(或者以_test结尾)
测试类必须以Test开头,并且不能有 init 方法
测试方法必须以test_开头
所在的包必须要有__init__.py文件
三、运行命令
执行用例命令参数:
pytes 运行目录下所有用例
pytest test_mod.py 运行文件内所有用例
pytest -s 输出调试信息,包括print打印的信息
pytest -v 丰富信息模式,输出更详细的用例执行信息
pytest -q 安静模式,不输出环境信息
pytest -x 只要一个用例报错,那么测试停止运行
pytest --maxfail=num 错误用例达到次数停止
pytest -k “**** not ****”按照包含的关键字运行对应内容
pytest test_mod.py::test_func 运行某个文件中独一个用例
pytest test_mod.py::TestClass::test_method 运行模块里面测试类里面的某种方法
pytest -m slow 通过mark标记运行测试
pytest.main() 代码中直接调用pytest
(可详见:https://blog.csdn.net/weixin_44006041/article/details/107934174)
四、简单使用
创建一个简单的实例,如下
# test1.py 文件
def test_one():
print(&