Pytest-2.6.0:更短的回溯,新的警告系统,测试运行程序兼容

pytest是一个成熟的Python测试工具,有1000多个针对自己的测试,可以传递许多不同的解释器和平台。

2.6.0版本应该是向后兼容2.5.2的版本,并修复了一些错误,带来了一些新的特性,主要是:

  • 默认的更短的回溯:只显示第一个(测试函数)条目和最后一个(故障位置)条目,两者之间只有“短”格式。使用 --tb=long 以恢复在任何地方显示“长”条目的旧行为。

  • 一种新的警报系统,在收集和执行过程中报告异常情况。例如,忽略使用 __init__ 现在产生一个警告。

  • 鼻子/模拟/单元测试集成的各种改进

还请注意,2.6.0与“零报告错误”策略背道而驰,因为很难跟上它,不幸的是。相反,我们现在必须在https://bitback.org/pytest-dev/pytest/issues中致力于“投票通过”的问题。status=new&status=open&sort=-投票问题跟踪程序。

参见文档:

和往常一样,您可以通过以下方式从pypi升级:

pip install -U pytest

感谢所有贡献者,其中包括:

本杰明·彼得森·朱尔科·戈斯波德尼·弗洛里斯·布鲁努格、马克·阿布拉莫维茨、马克·施莱奇、特雷弗·贝科莱、布鲁诺·奥利维拉、亚历克斯·格罗恩霍姆

玩得开心,霍尔格·克雷克尔

2.6.0

  • 修复问题537:默认情况下避免导入旧的断言重新解释代码。谢谢本杰明·彼得森。

  • 修复问题364:默认情况下缩短和增强回溯表示。新的“-tb=auto”选项(默认)将只显示第一个和最后一个条目的长跟踪。您可以使用“-tb=long”得到打印所有条目的旧行为。默认情况下,短条目的打印方式与“-tb=native”非常相似。

  • 修正问题514:感谢本杰明·彼得森,教授关于私有类属性的断言重新解释。

  • 将-v输出更改为包含测试的完整节点ID。用户可以从测试运行中复制节点ID(包括行号),并将其用作位置参数,以便仅运行单个测试。

  • 修复问题475:如果使用错误的异常类型调用pytest.raises,则提前失败并易于理解。

  • 修复问题516:告诉您有关当前依赖项的入门知识。

  • 稍微清理setup.py并指定支持的版本。感谢Jurko Gospodnetic的公关。

  • 使用-v运行测试时,将xpass颜色更改为黄色,而不是红色。

  • 解决问题473:在双重修补时模拟将未绑定的方法放入类dict。

  • 修复问题498:如果夹具终结器失败,请确保该夹具仍然无效。

  • 修正问题453:Pytest断言比较挂钩的结果现在得到了新行转义,这样格式异常就不会爆炸。

  • 内部新的警告系统:当Pytest检测到您的测试集合或执行中的异常时,它现在将生成警告。警告最终被发送到一个新的pytest_logwarning hook,该钩子当前仅由终端插件实现,该插件在摘要行中显示警告,并在指定-rw(警告报告)时显示更多详细信息。

  • 将跳过更改为带有 __init__ 和测试模块中的可调用文件,它们看起来像一个测试,但不是函数。

  • 修复问题436:通过使用parse_known_参数的结果而不是以前的脆弱的启发式,改进了从命令行参数中查找初始conftest文件的过程。感谢Marc Abramowitz在这一领域的测试和初步固定方法。

  • 修复问题479:在收集/加载测试模块期间正确处理nose/unittest(2)skiptest异常。感谢马克·施莱奇的全面公关。

  • 修复问题490:在文档中包含pytest加载初始conftests并改进docstring。

  • 解决问题472:澄清 pytest.config.getvalue() 如果在命令行分析之前触发,则无法工作。

  • 合并pr123:在测试中改进了与mock.patch decorator的集成。

  • 修复问题412:现在捕获与stdout/stderr fd级别流发生冲突而没有崩溃。

  • 解决问题483:trial/py33现在工作正常。感谢丹尼尔·格拉纳的公关。

  • 改进Pytest与“python setup.py test”的集成示例,该测试现在有一个通用的“-a”或“-py test args”选项,您可以在其中以带引号的字符串形式传递其他选项。谢谢特雷弗·贝科莱。

  • 简化了内部捕获机制,使其对更改fd1/fd2的测试或设置更为强大,现在在单个测试中也更好地与pytest.pdb()集成。

  • 由Marc Abramowitz提供的PRS改进了Pytest自己的测试套件泄漏检测

  • 修复问题492:避免测试写入组织中的泄漏。谢谢马克·阿布拉莫维茨。

  • 修复问题493:不要在文档目录中运行测试 python setup.py test (用毒物检测法)

  • 修复问题486:更好地报告和处理早期conftest加载失败

  • 一些内部conftest处理的清理和简化。

  • 在捕获异常时,要更努力地打破引用循环。感谢Jurko Gospodnetic。

  • 修复问题443:修复跳过示例以使用适当的比较。感谢亚历克斯·格罗恩霍姆。

  • 支撑鼻型 __test__ 模块、类和函数的属性,包括UnitTest样式类。如果设置为假,则不会收集测试。

  • 修复问题512:show“<not set>”for arguments which may not be set in monkeypatch plugin.改进了文档中的输出。

  • 避免导入“py.test”(“py test”的旧别名模块)