pytest 是 python 的一种单元测试框架,与 python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高
非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
能够支持简单的单元测试和复杂的功能测试
支持参数化
执行测试过程中可以将某些测试跳过,或者对某些预期失败的 case 标记成失败
支持重复执行失败的 case
支持运行由 nose, unittest 编写的测试 case
具有很多第三方插件,并且可以自定义扩展
执行命令pip install pytest
安装完成后,查看 pytest 版本:pytest --version
能够看到 pytest 版本,表示安装成功
# filename:test_01.py
import pytest
def func(x):
return x + 1
def test_answer():
assert func(3) == 4
def test_answer1():
assert func(3) == 5
if __name__ == '__main__':
pytest.main(['-s','test_01.py'])
在 test_01.py 同级目录下,直接执行pytest
============================= test session starts =============================
platform win32 -- Python 3.7.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: D:\study\auto-pytest
collected 2 items
test_01.py .F
================================== FAILURES ===================================
________________________________ test_answer1 _________________________________
def test_answer1():
> assert func(3) == 5
E assert 4 == 5
E + where 4 = func(3)
test_01.py:13: AssertionError
=========================== short test summary info ===========================
FAILED test_01.py::test_answer1 - assert 4 == 5
========================= 1 failed, 1 passed in 0.08s =========================
第一个测试用例 passed,第二个测试用例 failed
也可使用命令行运行:pytest test_01.py
,同样可以执行测试
命名原则
test_*.py
和*_test.py
开头或结尾__init__
函数,测试方法名以 test_开头的函数