本文来自作者
zhong
在
GitChat
上的分享
前言
Pytest 是 Python 的一种单元测试框架,与 Python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。
Pytest 是一个成熟的全功能的 Python 测试工具,可以帮助你写出更好的程序,让我们很方便的编写测试用例。
适合从简单的单元到复杂的功能测试。有很多的第三方插件可以自定义扩展,并且支持 Allure,生成可视化的测试报告和测试结果,并能输出 log 信息。
一、Pytest 介绍
Pytest 官方文档:
https://docs.pytest.org/en/latest/
二、安装 Pytest
在 CMD 窗口下输入以下指令:
pip install -U pytest # 通过pip安装
py.test --version # 查看pytest版本
安装插件:
以上插件均在 Python3.4.4 下通过 pip 工具安装。
三、在 PyCharm 配置 Pytest 并运行程序
通常我们会使用 IDE 进行日常的开发工作,PyCharm 是一款针对 Python 的 IDE,深受广大 Python 爱好者的青睐。我们可以在 PyCharm 中配置 Pytest,从而可以直接在 PyCharm 中使用 Pytest 的功能,方便且高效。
当我们在命令行安装好 Pytest 后,在 PyCharm 中进入
File -> Settings... -> Tools -> Python Integrated Tools
,在右边的窗口中有一个 Default test runner 选项,点击下拉框可以看到 py.test,选择该项后点击 Apply 即可。
然后我们可以回到写有测试函数的文件中直接右键,会出现一个
Run 'py.test' for project_name
,直接点击即可运行自动化测试,如下图所示。
四、简单实例
根据官方文档得来,实现一个示例。
在 PyCharm 中创建文件夹名为 Pytest,在该文件下创建命名为
test_sample.py
脚本文件,然后输入如下程序,在 PyCharm 底部的 Terminal 中输入指令进入当前目录下:
D:\work\test_sample>
(此路径是本篇保存脚本文件路径),然后执行如下指令:
py.test test_sample.py
test_sample.py脚本如下
:
coding:utf-8
def func(x):
return x +1
def test_func():
assert func(3) ==5
这里我们定义了一个被测试函数 func,该函数将传递进来的参数加 1 后返回。我们还定义了一个测试函数
test_func
用来对 func 进行测试。
test_func
中我们使用基本的断言语句 assert 来对结果进行验证。
运行代码:
结果分析:
执行测试的时候,我们只需要在测试文件
test_sample
所在的目录下,运行 py.test 即可。Pytest 会在当前的目录下,寻找以 test 开头的文件(即测试文件),找到测试文件之后,进入到测试文件中寻找
test_
开头的测试函数并执行。
通过上面的测试输出,我们可以看到该测试过程中,一个收集到了一个测试函数,测试结果是失败的(标记为 F),并且在 FAILURES 部分输出了详细的错误信息,帮助我们分析测试原因,我们可以看到
assert func(3) == 5
这条语句出错了,错误的原因是
func(3)=4
,然后我们断言
func(3)
等于 5。
再一个示例:
py.test test_class.py
test_class.py 脚本如下:
#coding:utf-8class TestClass():
def test_one(self):
x = "this"