pytest-2.6.0:更短的回溯、新的警告系统、测试运行器兼容性¶
pytest 是一个成熟的 Python 测试工具,自身拥有超过 1000 个测试,在许多不同的解释器和平台上通过。
2.6.0 版本应向后兼容 2.5.2,并修复了大量错误,带来了一些新功能,主要包括
默认情况下,回溯信息更短:只显示第一个(测试函数)入口和最后一个(失败位置)入口,中间的入口只以“短”格式显示。使用
--tb=long可恢复旧的行为,即到处显示“长”入口。一个新的警告系统,报告收集和执行过程中的异常情况。例如,现在忽略收集带有
__init__的 Test* 类会产生警告。对 nose/mock/unittest 集成的各种改进
另请注意,2.6.0 版本放弃了“零报告错误”政策,因为不幸的是,要跟上它太难了。相反,我们现在更倾向于处理 https://bitbucket.org/pytest-dev/pytest/issues?status=new&status=open&sort=-votes 问题跟踪器中“被点赞”的问题。
请参阅文档:
像往常一样,您可以通过 pypi 升级:
pip install -U pytest
感谢所有贡献者,其中包括
Benjamin Peterson Jurko Gospodnetić Floris Bruynooghe Marc Abramowitz Marc Schlaich Trevor Bekolay Bruno Oliveira Alex Groenholm
玩得开心,holger krekel
2.6.0¶
修复 issue537:默认情况下避免导入旧的断言重解释代码。感谢 Benjamin Peterson。
修复 issue364:默认情况下缩短和增强回溯表示。新的“--tb=auto”选项(默认)将只显示第一个和最后一个入口的完整回溯。您可以使用“--tb=long”恢复旧的行为,即以完整形式打印所有入口。此外,默认情况下,短入口的打印方式现在与“--tb=native”非常相似。
修复 issue514:让断言重解释了解私有类属性。感谢 Benjamin Peterson。
更改 -v 输出以包含测试的完整节点 ID。用户可以从测试运行中复制节点 ID,包括行号,并将其用作位置参数,以便只运行单个测试。
修复 issue 475:如果调用 pytest.raises 时使用错误的异常类型,则提前并可理解地失败。
修复 issue516:在入门指南中说明当前依赖项。
清理 setup.py 并指定支持的版本。感谢 Jurko Gospodnetic 的 PR。
当测试以 -v 运行时,将 XPASS 颜色更改为黄色而不是红色。
修复 issue473:解决 mock 在双重打补丁时将未绑定方法放入类字典的问题。
修复 issue498:如果夹具终结器失败,确保夹具仍然失效。
修复 issue453:pytest_assertrepr_compare 钩子的结果现在会将其换行符转义,以免 format_exception 崩溃。
内部新警告系统:pytest 现在在检测到测试收集或执行中的异常情况时会生成警告。警告最终发送到新的 pytest_logwarning 钩子,目前仅由终端插件实现,该插件在摘要行中显示警告,并在指定 -rw(报告警告)时显示更多详细信息。
对于带有 __init__ 的测试类和测试模块中看起来像测试但不是函数的调用,将跳过转换为警告。
修复 issue436:通过使用 parse_known_args 的结果而不是以前不稳定的启发式方法,改进了从命令行参数查找初始 conftest 文件。感谢 Marc Abramowitz 在这方面提供的测试和初始修复方法。
修复 issue #479:在测试模块收集/加载期间正确处理 nose/unittest(2) SkipTest 异常。感谢 Marc Schlaich 的完整 PR。
修复 issue490:将 pytest_load_initial_conftests 包含在文档中并改进文档字符串。
修复 issue472:澄清
pytest.config.getvalue()如果在命令行解析之前触发,则无法工作。合并 PR123:改进了 mock.patch 装饰器与测试的集成。
修复 issue412:现在可以捕获对 stdout/stderr FD 级流的操作而不会崩溃。
修复 issue483:trial/py33 现在可以正常工作。感谢 Daniel Grana 的 PR。
改进了 pytest 与“python setup.py test”集成的示例,现在它有一个通用的“-a”或“--pytest-args”选项,您可以在其中将其他选项作为带引号的字符串传递。感谢 Trevor Bekolay。
简化了内部捕获机制,使其对更改 FD1/FD2 的测试或设置更具鲁棒性,现在还更好地集成了 pytest.pdb() 在单个测试中。
Marc Abramowitz 的 PR 提供了对 pytest 自身测试套件泄漏检测的改进。
修复 issue492:避免 test_writeorg 中的泄漏。感谢 Marc Abramowitz。
修复 issue493:不要使用
python setup.py test在 doc 目录中运行测试(为此使用 tox -e doctesting)修复 issue486:更好地报告和处理早期 conftest 加载失败
清理和简化了一些内部 conftest 处理。
在捕获异常时,更努力地打破引用循环。感谢 Jurko Gospodnetic。
修复 issue443:修复跳过示例以使用正确的比较。感谢 Alex Groenholm。
支持 nose 风格的模块、类和函数上的
__test__属性,包括 unittest 风格的类。如果设置为 False,则不会收集测试。修复 issue512:为 monkeypatch 插件中可能未设置的参数显示“<notset>”。改进了文档中的输出。
避免导入“py.test”(“pytest”的旧别名模块)