您的位置:首页 > 其它

pytest的plugin

2016-03-19 18:29 267 查看
一个plugin包含一个或多个hook函数。pytest通过调用如下plugin很好指定地hooks来执行所有关于配置,搜集,运行和报告等。

Pytest默认plugin参考:从pytest内部的_pytest目录下加载。
外部plugins:通过setuptools entry points找到的模块。
conftest.py plugin:在test目录下默认找到的模块。

原则上,每一个hook调用是一个1:N的Python函数调用,其中的N指的是对一个给定规格的注册实行函数(registered implementation funtions)的数量。所有规格和实行遵从pytest_前缀命名传统,使得他们易于区分和发现。

Plugin在工具启动(tool startup)中的寻找顺序
pytest通过以下的方式在工具启动中加载plugin模块:

通过加载内建plugin
通过加载注册在setuptools entry points的plugin
通过预先扫描命令行的-p参数,并且在真正的命令行解释前加载指定的plugin
通过加载有命令行调用推断的所有conftest.py文件

如果测试路径(test paths)没有指定,则使用当前路径作为测试路径
如果测试路径存在,则加载conftest.py和在第一测试路径的相对目录中的conftest.py,即test*/conftest.py

递归加载所有在conftest.py文件中的pytest_plugins变量中指定的plugin。

注意:pytest并不去更深的嵌套子路径下去寻找conftest.py文件在工具启动时。所以通常情况下把你的conftest.py文件放在测试的顶层路径或者项目的主路径。

如果你想查看现存的plugins的名字,可以使用--traceconfig选项。

本文来自:pytest官网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: