本文系《pytest源码剖析》系列内容

正在连载,欢迎关注

6. 内置插件 helpconfig

插件路径:_pytest.helpconfig

实现的 hook

hooktryfirsttrylastoptionalhookhookwrapperwrapperpytest_addoptionFalseFalseFalseFalseFalsepytest_cmdline_mainFalseFalseFalseFalseFalsepytest_cmdline_parseFalseTrueFalseFalseFalsepytest_report_headerFalseFalseFalseFalseFalse

调用的 hook

插件功能

创建了命令行参数 -V,不执行用例,而是显示版本信息 创建了命令行参数 -h,不执行用例,而是显示所有的参数说明 创建了命令行参数 -p,申明要加载或禁用的插件 创建了命令行参数 --traceconfig,显示插件加载情况 创建了命令行参数 --debug,保存 hook 执行过程到日志文件 创建了命令行参数 -o,通过命令行覆盖文件中的配置

代码片段

def pytest_cmdline_main(config: Config) -> Optional[Union[int, ExitCode]]:

if config.option.version > 0:

showversion(config)

return 0

elif config.option.help:

config._do_configure()

showhelp(config)

config._ensure_unconfigure()

return 0

return None

如果传递了 -h 或 -V 参数, pytest 将不会再执行用例 如果传递了 --debug 参数,生成的日志文件内容如下

简评

从【调用 hook 列表为空】这一点可以看出来,就算没有这个插件,也丝毫不影响 pytest 的运行。

但是有了它,才能够更好的了解和使用 pytest。

...

helpconfig 插件主要是显示信息的输出,让大家更好的了解 pytest。

但是,它不仅可以显示配置的说明,还可以修改配置的内容

我猜这也是为什么名字不是 helpinfo,而是 helpconfig 的原因吧

...

刚接触 pytest 的时候,你可能只会使用 -v 参数,来验证是否安装成功

新手阶段,可能经常使用 -h 参考查看配置项的名称和说明

进阶水平,可能需要 -p 参数和 -o 参数 调整框架配置

终于有一天,你和我一样,想要知道 pytest 在运行的过程中究竟发生了些什么,

使用 --debug 参数,helpconifg 插件会告诉你一切

首发于公众号:测试开发研习社

原创不易,喜欢请星标+点赞+在看

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: