本文系《pytest源码剖析》系列内容
正在连载,欢迎关注
6. 内置插件 helpconfig
插件路径:_pytest.helpconfig
实现的 hook
hook | tryfirst | trylast | optionalhook | hookwrapper | wrapper |
---|---|---|---|---|---|
pytest_addoption | False | False | False | False | False |
pytest_cmdline_main | False | False | False | False | False |
pytest_cmdline_parse | False | True | False | False | False |
pytest_report_header | False | False | False | False | False |
调用的 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 插件会告诉你一切
首发于公众号:测试开发研习社
原创不易,喜欢请星标+点赞+在看