pytest 简介
pytest是一个功能强大且易于使用的Python测试框架,它主要用于编写单元测试、集成测试和功能测试。
一、pytest的安装
- 安装命令:
pip install pytest
- 验证安装:使用
pytest --version
命令来查看已安装的pytest版本,如果终端显示一个版本号,则说明安装成功。
二、pytest的命名规范
- 测试模块:测试文件应以”test_”开头或以”_test”结尾,例如
test_login.py
或user_test.py
。 - 测试类:测试类必须以Test开头命名,且测试类中不能有
__init__
方法。 - 测试方法/测试函数:测试方法/测试函数必须以test开头。
三、pytest的常用运行参数
- 无参数:读取路径下符合条件的所有类、函数、方法全部执行。
- -v:打印详细运行日志。
- -s:打印print输出。
- -k:跳过运行某个或某些用例,如
pytest -k '类名'
、pytest -k '方法名'
。 - -x:运行用例失败立即停止运行。
- –maxfail:用例失败数达到某个设定的值停止运行,如
pytest --maxfail=[num]
。 - -m:运行所有被
@pytest.mark.[标记名]
标记的用例。
四、pytest的fixture特性
- 用途:fixture主要用来做初始化环境以及测试结束后的数据清除,可以代替setup和teardown。
- 参数:
scope
:控制fixture的作用范围,包括function(默认)、class、module、session。params
:一个可选的参数列表,列表中每个数据都可以作为用例的输入。autouse
:如果为True,则自动调用fixture功能;如果为False,则需要显式调用。ids
:每个字符串id的列表,对应于params中的参数,用于生成测试ID。name
:fixture的名称。
五、pytest的skip和xfail
- skip:用于跳过测试用例,可以在函数内使用
pytest.skip()
,也可以在函数外使用@pytest.mark.skip()
装饰器。 - xfail:用于标记预期会失败的测试用例,使用
@pytest.mark.xfail()
装饰器。
六、pytest的参数化
- 参数化:使用
@pytest.mark.parametrize()
装饰器来实现数据驱动测试。 - 示例:
1 | import pytest |
在这个例子中,test_add
函数会分别用(1, 1, 2)和(2, 3, 5)这两组数据来执行测试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AGI Explained!
评论