pytest
是一个能够简化测试系统构建、方便测试规模扩展的框架,它让测试变得更具表现力和可读性–模版代码不再是必需的。
只需要几分钟的时间,就可以对你的应用开始一个简单的单元测试或者复杂的功能测试。
1. 安装
-
命令行执行如下命令:
pipenv install pytest==5.1.3
-
查看安装的版本信息:
pipenv run pytest --version
2. 创建你的第一个测试用例
它只有四行代码:
# src/chapter-1/test_sample.py
def func(x):
return x + 1
def test_sample():
assert func(3) == 5
通过以下命令执行测试:
λ pipenv run pytest src/chapter-1/test_sample.py
============================= test session starts ==============================
platform win32 -- Python 3.7.3, pytest-5.1.3, py-1.8.0, pluggy-0.13.0
rootdir: D:\Personal Files\Projects\pytest-chinese-doc
collected 1 item
src\chapter-1\test_sample.py F [100%]
=================================== FAILURES ===================================
_________________________________ test_sample __________________________________
def test_sample():
> assert func(3) == 5
E assert 4 == 5
E + where 4 = func(3)
src\chapter-1\test_sample.py:28: AssertionError
============================== 1 failed in 0.05s ===============================
pytest
返回一个失败的测试报告,因为func(3)
不等于5
。
3. 执行多个测试用例
执行pipenv run pytest
命令,它会执行当前及其子文件夹中,所有命名符合test_*.py
或者*_test.py
规则的文件;
4. 触发一个指定异常的断言
使用raises
可以检查代码是否抛出一个指定的异常:
# src/chapter-1/test_sysexit.py
import pytest
def f():
# 解释器请求退出
raise SystemExit(1)
def test_mytest():
with pytest.raises(SystemExit