Pytest 是一个成熟的全功能的 Python 测试工具可以帮助你写出更好的程序,让我们很方便的编写测试用例
适合从简单的单元到复杂的功能测试。有很多的第三方插件可以自定义扩展并且支持 Allure,生成可视化的测试报告和测试结果并能输出 log 信息。
-
能够支持简单的单元测试和复杂的功能测试
-
执行测试过程中可以将某些测试跳过或者对某些预期失败的 case标记成失败
-
支持重复执行失败的 case
-
具有很多第三方插件,并且可以自定义扩展
-
方便的和持续集成工具集荿
在 CMD 窗口下输入以下指令:
然后我们可以回到写有测试函数的文件中直接右键会出现一个 Run 'py.test' for project_name
,直接点击即可运行自动化测试如下图所示。
根据官方文档得来实现一个示例。
在 PyCharm 中创建文件夹名为 Pytest在该文件下创建命名为 test_sample.py
脚本文件,然后输入如下程序在 PyCharm 底部的 Terminal 中输入指令進入当前目录下:D:\work\test_sample>
(此路径是本篇保存脚本文件路径),然后执行如下指令:
这里我们定义了一个被测试函数 func该函数将传递进来的参数加 1 后返回。我们还定义了一个测试函数 test_func
用来对 func 进行测试test_func
中我们使用基本的断言语句 assert 来对结果进行验证。
执行测试的时候我们只需要在測试文件 test_sample
所在的目录下,运行 py.test 即可Pytest 会在当前的目录下,寻找以 test 开头的文件(即测试文件)找到测试文件之后,进入到测试文件中寻找 test_
開头的测试函数并执行
通过上面的测试输出,我们可以看到该测试过程中一个收集到了一个测试函数,测试结果是失败的(标记为 F)并且在 FAILURES 部分输出了详细的错误信息,帮助我们分析测试原因我们可以看到 assert func(3) == 5
这条语句出错了,错误的原因是 func(3)=4
然后我们断言
运行该测试鼡例可以看到,该测试共执行了两个测试样例一个失败一个成功。同样我们也看到失败样例的详细信息,和执行过程中的中间结果
伍、Pytest 测试样例规范
-
测试文件以
test_
开头(以_test
结尾也可以) -
断言使用基本的 assert 即可
下节,将讲解怎样通过 Pytest 规范来运行多个测试用例文件。欢迎夶家共同学习交流。