目录
Pytest是一个成熟的全功能的Python测试框架,它可以满足大多数Python测试需求。以下是一些Pytest的主要特点:
- 简洁的语法:Pytest使用简洁的语法,使你的测试代码更加清晰易读。
- 丰富的内建功能:Pytest内建支持单元测试、功能测试、集成测试和回归测试。
- 灵活的fixture机制:Pytest提供了fixture机制,能够方便的在测试函数之间共享测试数据或测试状态。
- 参数化测试:Pytest支持参数化测试,可以用一组输入数据针对同一测试用例执行多次测试。
- 插件支持:Pytest有大量的插件,如用于测试覆盖率的pytest-cov,用于并行测试的pytest-xdist等。
- 兼容unittest框架:Pytest兼容Python标准库中的unittest测试框架,所以你可以在Pytest中运行unittest的测试用例。
- 详细的错误报告:当测试失败时,Pytest可以提供详细的错误报告,包括测试期间的输入数据、执行路径和异常堆栈。
在创建测试用例时,你不需要继承任何特定的类,只需要定义一个函数,并在函数名前加上test_
前缀即可。Pytest会自动发现并运行这些测试用例。
安装pytest非常简单,只需在命令行中运行pip install pytest
即可。
1.1 安装和入门
1.1.1 安装pytest
1、在命令行中运行以下命令:
pip install -U pytest
2、检查是否安装了正确的版本:
$ pytest --version
pytest 6.2.1
1.1.2 创建第一个测试
创建一个名为test_sample.py的新文件,其中包含一个函数和一个测试:
# content of test_sample.py
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
现在可以执行测试功能:
$ pytest
=========================== test session starts ============================
platform linux -- Python 3.x.y, pytest-6.x.y, py-1.x.y, pluggy-0.x.y
cachedir: $PYTHON_PREFIX/.pytest_cache
rootdir: $REGENDOC_TMPDIR
collected 1 item
test_sample.py F [100%]
================================= FAILURES =================================