手把手教你实现一个自己的pytest插件,玩转自动化测试

通过hook函数改变pytest的行为

手把手教你实现一个自己的pytest插件,玩转自动化测试

如上图定义一个测试类,有两个测试函数,test_done_not_bool这个测试函数一定会失败,因为done参数要去传入的是boolean值,会抛出TypeError,而测试用例中期望抛出ValueError,来看一下错误信息。

执行pytest -v test_api_exceptions.py -k TestAdd。

手把手教你实现一个自己的pytest插件,玩转自动化测试

pytest -v --tb=no test_api_exceptions.py -k TestAdd 简化输出信息。

手把手教你实现一个自己的pytest插件,玩转自动化测试

现在来定制pytest的输出内容,pytest可以通过预设的hook函数来改变pytest的行为,pytest_report_header,是一个可以定制输出头信息的hook函数。

<code>

def

pytest_report_header

()

:

return

'Hello Pytest'

/<code>

执行命令:

手把手教你实现一个自己的pytest插件,玩转自动化测试

pytest_report_teststatus是一个可以修改测试报告状态的hook函数,当测试失败的时候,将失败标志,F改为O,Failed改为自定义的文案

手把手教你实现一个自己的pytest插件,玩转自动化测试

执行运行命令查看输出内容,发现变为我们自定义的内容了。

手把手教你实现一个自己的pytest插件,玩转自动化测试

但是有时需要输出自定义的信息,有时候又不需要,此时可以添加一个自定义的命令,通过pytest_addoption这个hook函数可以实现,重构之前的conftest.py文件里hook函数代码

手把手教你实现一个自己的pytest插件,玩转自动化测试

指定多种情况下命令执行结果对比

手把手教你实现一个自己的pytest插件,玩转自动化测试

创建可安装的包

新建目文件pytest_nice

手把手教你实现一个自己的pytest插件,玩转自动化测试

将之前的代码全部放入pytest_nice.py文件中,然后定义setup.py里面的内容,按照标准格式填写即可。

然后再根目录下执行pip install -e .提示安装成功后

手把手教你实现一个自己的pytest插件,玩转自动化测试

将之前conftest.py文件里的hook函数代码注释掉,再执行命令,输出自定义的内容,表明插件使用成功。

手把手教你实现一个自己的pytest插件,玩转自动化测试


分享到:


相關文章: