pytest-2.7.0:修复、特性、性能改进¶
pytest 是一个成熟的 Python 测试工具,拥有超过 1100 个自测试,在许多不同的解释器和平台上通过。此版本应与 2.6.X 兼容。
请参阅下面的更改,并访问文档:
像往常一样,您可以通过 pypi 升级:
pip install -U pytest
感谢所有贡献者,其中包括
Anatoly Bubenkoff Floris Bruynooghe Brianna Laugher Eric Siegerman Daniel Hahler Charles Cloud Tom Viner Holger Peters Ldiary Translations almarklein
玩得开心,holger krekel
2.7.0(与 2.6.4 相比)¶
修复 issue435:在断言重写激活时使 reload() 工作。感谢 Daniel Hahler。
修复 issue616:conftest.py 文件及其包含的 fixture 现在被正确地考虑可见性,这与当前工作目录和所使用的测试参数无关。非常感谢 Eric Siegerman 和他的 PR235,其中包含针对 conftest 可见性的系统测试,并且现在已通过。此更改还引入了
rootdir的概念,该概念作为新的 pytest 标头打印,并在 pytest 自定义网页中进行了文档说明。更改“转移”测试的报告,即在一个文件中收集但实际上来自另一个文件的测试(例如,当测试类中的测试来自不同文件中的基类时)。我们现在显示 nodeid 并通过后缀指示另一个文件。
添加通过环境变量 PYTEST_ADDOPTS 设置命令行选项的功能。
添加了关于 bitbucket 和 github 上新的 pytest-dev 团队的文档。请参阅 https://pytest.cn/en/stable/contributing.html 。感谢 Anatoly 的推动和前期工作。
修复 issue650:新选项
--doctest-ignore-import-errors,它将把 doctest 中的导入错误转换为跳过。感谢 Charles Cloud 的完整 PR。修复 issue655:解决导致 python2/3 将 sys.exc_info 泄漏到 fixture/测试中,从而导致第三方代码失败的不同方式。
修复 issue615:断言重写在格式化布尔运算时没有正确转义 % 符号,这在混合布尔值和模运算符时导致问题。感谢 Tom Viner 的报告、分类和修复。
实现 issue351:添加将参数化 id 指定为可调用函数以生成自定义测试 id 的功能。感谢 Brianna Laugher 的想法和实现。
引入并记录新的 hookwrapper 机制,该机制对希望包装某些钩子执行以达到其目的的插件很有用。这取代了 pytest 自身和一些外部插件使用的未文档化的
__multicall__协议。请注意,pytest-2.8 计划停止支持旧的__multicall__,并且只支持 hookwrapper 协议。显著加快插件钩子的调用速度
在内置 pytest 插件中使用 hookwrapper 机制。
为 doctest 标志添加了一个 doctest ini 选项,感谢 Holger Peters。
在文档中添加注释,如果您想标记一个参数并且该参数是可调用的,您还需要传入一个原因,以将其与“装饰器”情况区分开来。感谢 Tom Viner。
“python_classes”和“python_functions”选项现在支持 glob 模式进行测试发现,如 issue600 中所讨论。感谢 Ldiary Translations。
允许使用非参数化 fixture 覆盖参数化 fixture,反之亦然(bubenkoff)。
修复 issue463:针对“parameterize”拼写错误引发特定错误 (pfctdayelise)。
失败时,设置
sys.last_value、sys.last_type和sys.last_traceback,以便用户可以通过事后调试检查错误 (almarklein)。