简介
pytest是动态编程语言Python专用的测试框架,它具有易于上手、功能强大、可扩展性好、兼容性强、效率高、第三方插件丰富等特点。
功能特征:
完整的文档,包括安装,教程和PDF文档
简单而又详细的断言模式(使用纯assert语句)
自动发现测试模块和功能(以test为标识)
可以运行unittest和nose框架的测试用例
灵活的固件,用于管理小型或参数化的长期测试资源
丰富的插件架构,拥有三百多个外部插件和丰富的社区
编写规则:
测试文件以test_开头(以_test结尾也可以)
测试类以Test开头,并且不能带有 init 方法
测试函数以test_开头
断言使用基本的assert即可
自动发现规则:
如果未指定任何参数,则从testpaths(如果已配置)或当前目录开始收集。
另外,命令行参数可以在目录、文件名或节点ID的任何组合中使用。
在这些目录中,搜索包含 test_*.py 或 *_test.py 的测试文件。
从这些文件中,收集以test前缀的测试方法,或者在Test前缀的测试类(无__init__方法)中的以test前缀的测试方法。
安装
打开bash命令行,运行以下命令:
pip install -U pytest
检查是否安装了正确的版本:
$ pytest --version
pytest6.1.2
示例
创建一个简单的测试函数:
#test_sample.py#被测功能
deffunc(x):return x + 1
#测试成功
deftest_pass():assert func(3) == 4
#测试失败
deftest_fail():assert func(3) == 5
现在开始执行测试功能:
E:\workspace-py\Pytest>pytest========================================================================== test session starts ==========================================================================platform win32-- Python 3.7.3, pytest-6.0.2, py-1.9.0, pluggy-0.13.0rootdir: E:\workspace-py\Pytest
plugins: allure-pytest-2.8.18, cov-2.10.1, html-2.1.1, metadata-1.8.0, rerunfailures-9.1, xdist-2.1.0collected2items
test_sample.py .F [100%]=============================================================================== FAILURES ================================================================================_______________________________________________________________________________ test_fail _______________________________________________________________________________
def test_fail():> assert func(3) == 5E assert 4 == 5
E + where 4 = func(3)
test_sample.py:16: AssertionError======================================================================== short test summary info ========================================================================FAILED test_sample.py::test_fail- assert 4 == 5
====================================================================== 1 failed, 1 passed in 0.16s ======================================================================
这里未指定测试用例,pytest将依据自动发现规则检索并执行测试,等同于 pytest ./test_sample.py
pytest 使用 . 标识测试成功(PASSED)
pytest 使用 F 标识测试失败(FAILED)
可以使用-v 选项,显示测试的详细信息
可以使用 -h 查看 pytest 的所有选项
标记
默认情况下,pytest 会递归查找当前目录下所有以 test 开始或结尾的 Python 脚本,并执行文件内的所有以 test 开始或结束的函数和方法。
1、如果你想