1.pytest介绍和安装
pytest介绍
pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高
-
非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
-
能够支持简单的单元测试和复杂的功能测试
-
支持参数化
-
执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败
-
支持重复执行失败的case
-
支持运行由nose, unittest编写的测试case
-
具有很多第三方插件,并且可以自定义扩展
pytest安装
执行命令pip install pytest
安装完成后,查看pytest版本:pytest --version
能够看到pytest版本,表示安装成功
第一个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
,同样可以执行测试
pytest注意
命名原则
- 测试用例文件名必须以
test_*.py
和*_test.py
开头或结尾 - 如果有类名,必须以Test开头,没有
__init__
函数,测试方法名以test_开头的函数 - 没有类,那么以函数为单位的函数名必须以test_开头
- 文件夹(包名)名可以随意命名