pytest-2.9.0¶
pytest 是一个成熟的 Python 测试工具,自身拥有超过 1100 个测试用例,并在许多不同的解释器和平台上通过。
请参阅下面的更改,并访问文档:
像往常一样,您可以通过 pypi 升级:
pip install -U pytest
感谢所有为此版本做出贡献的人,其中包括
Anatoly Bubenkov Bruno Oliveira Buck Golemon David Vierra Florian Bruhin Galaczi Endre Georgy Dyuldin Lukas Bednar Luke Murphy Marcin Biernat Matt Williams Michael Aquilina Raphael Pierzina Ronny Pfannschmidt Ryan Wooden Tiemo Kieft TomV holger krekel jab
祝您测试愉快,py.test 开发团队
2.9.0(与 2.8.7 比较)¶
新功能
新增了
pytest.mark.skip标记,它无条件跳过已标记的测试。感谢 @MichaelAquilina 提供的完整 PR (#1040)。--doctest-glob现在可以在命令行中多次传递。感谢 @jab 和 @nicoddemus 提供的 PR。新的
-rp和-rP报告选项分别提供通过测试的摘要和完整输出。感谢 @codewarrior0 提供的 PR。pytest.mark.xfail现在有一个strict选项,它会使XPASS测试失败测试套件,默认为False。还有一个xfail_strictini 选项,可用于项目范围的配置。感谢 @rabbbit 提出的请求和 @nicoddemus 提供的 PR (#1355)。Parser.addini现在支持bool类型的选项。感谢 @nicoddemus 提供的 PR。新增
ALLOW_BYTESdoctest 选项,可从 doctest 输出中的字节字符串中去除b前缀(类似于ALLOW_UNICODE)。感谢 @jaraco 提出的请求和 @nicoddemus 提供的 PR (#1287)。在 KeyboardInterrupt 上给出提示,使用 –fulltrace 选项显示错误,这修复了 #1366。感谢 @hpk42 提供的报告和 @RonnyPfannschmidt 提供的 PR。
在获取异常源位置时捕获 IndexError 异常。这修复了 pytest 内部错误,针对动态生成的代码(fixtures 和 tests),其中源行是故意伪造的。
变更
重要:py.code 已合并到
pytest仓库中,作为pytest._code。做出此决定是因为py.code在pytest之外很少使用,并且它位于不同的仓库中使得及时修复其代码中的错误变得困难。团队希望通过此举能够更好地重构和改进该代码。此更改不应影响用户,但如果他们遇到任何奇怪的行为,让用户知晓会很有用。请记住,
pytest._code的代码是私有的和实验性的,因此您绝对不应显式导入它!请注意,原始的
py.code仍然在 pylib 中可用。pytest_enter_pdb现在可选地接收 pytest 配置对象。感谢 @nicoddemus 提供的 PR。删除了 Python 2.5 或更低版本的代码和文档,包括删除了过时的
_pytest.assertion.oldinterpret模块。感谢 @nicoddemus 提供的 PR (#1226)。当环境中发现
CI或BUILD_NUMBER时,即使不使用 -vv,比较也会始终完整显示。感谢 @The-Compiler 提供的 PR。--lf和--ff现在支持长名称:分别为--last-failed和--failed-first。感谢 @MichaelAquilina 提供的 PR。已将预期异常添加到 pytest.raises 失败消息中。
只有在终端中运行时,Collection 才会显示进度(“收集 X 项”)。这避免了在使用
--color=yes在 CI 集成系统中获取颜色时输出混乱 (#1397)。
Bug 修复
-s和-c选项现在应该在xdist下工作;Config.fromdictargs现在更忠实地表示其输入。感谢 @bukzor 提供的完整 PR (#680)。修复 (#1290):支持 Python 3.5 的
@运算符在断言重写中。感谢 @Shinkenjoe 提供了带有测试用例的报告,以及 @tomviner 提供的 PR。修复 追溯样式文档 以描述所有可用选项(auto/long/short/line/native/no),其中
auto是自 v2.6 以来的默认值。感谢 @hackebrot 提供的 PR。修复 (#1422):junit record_xml_property 不允许使用相同名称的多个记录。