通过hook函数改变pytest的行为
如上图定义一个测试类,有两个测试函数,test_done_not_bool这个测试函数一定会失败,因为done参数要去传入的是boolean值,会抛出TypeError,而测试用例中期望抛出ValueError,来看一下错误信息。
执行pytest -v test_api_exceptions.py -k TestAdd。
pytest -v --tb=no test_api_exceptions.py -k TestAdd 简化输出信息。
现在来定制pytest的输出内容,pytest可以通过预设的hook函数来改变pytest的行为,pytest_report_header,是一个可以定制输出头信息的hook函数。
<code>def
pytest_report_header
()
:return
'Hello Pytest'
/<code>
执行命令:
pytest_report_teststatus是一个可以修改测试报告状态的hook函数,当测试失败的时候,将失败标志,F改为O,Failed改为自定义的文案
执行运行命令查看输出内容,发现变为我们自定义的内容了。
但是有时需要输出自定义的信息,有时候又不需要,此时可以添加一个自定义的命令,通过pytest_addoption这个hook函数可以实现,重构之前的conftest.py文件里hook函数代码
指定多种情况下命令执行结果对比
创建可安装的包
新建目文件pytest_nice
将之前的代码全部放入pytest_nice.py文件中,然后定义setup.py里面的内容,按照标准格式填写即可。
然后再根目录下执行pip install -e .提示安装成功后
将之前conftest.py文件里的hook函数代码注释掉,再执行命令,输出自定义的内容,表明插件使用成功。