安装pytest
命令行输入:
pip install -U pytest
检查是否安装了正确的版本:
λ pytest --version
This is pytest version 5.3.5, imported from e:\python37\lib\site-packages\pytest\__init__.py
setuptools registered plugins:
pytest-html-2.0.1 at e:\python37\lib\site-packages\pytest_html\plugin.py
pytest-metadata-1.8.0 at e:\python37\lib\site-packages\pytest_metadata\plugin.py
一个简单的demo
import pytest def func(x):
return x + 1 def test_answer():
assert func(3) == 5
运行demo
首先进入到此demo文件的路径下,然后执行 pytest ,会运行名称为test*.py的文件(*匹配任意符合字母和数字)
pytest运行规则:查找当前目录及其子目录下以test_.py或_test.py文件,找到文件后,在文件中找到以test开头函数并执行。
C:\Users\haiy\Desktop\code\iot_yjb_api
λ pytest
============================ test session starts ============================= platform win32 -- Python 3.7.1rc1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: C:\Users\haiy\Desktop\code\iot_yjb_api
plugins: html-2.0.1, metadata-1.8.0
collected 1 item test_api.py F [100%] ================================== FAILURES ================================== ________________________________ test_answer _________________________________ def test_answer():
> assert func(3) == 5
E assert 4 == 5
E + where 4 = func(3) test_api.py:9: AssertionError
============================= 1 failed in 0.23s =============================
此测试返回失败报告,因为 func(3)
不返 5
.
如何编写pytest测试样例
通过上面的实例,我们发现编写pytest测试样例非常简单,只需要按照下面的规则:
- 测试文件以test_开头(以_test结尾也可以)
- 测试类以Test开头,并且不能带有 init 方法
- 测试函数以test_开头
- 断言使用基本的assert即可