py.test 2.0.2:错误修复,改进的 xfail/skip 表达式,速度提升

欢迎使用 pytest-2.0.2,这是 pytest 的一个维护和错误修复版本,pytest 是一个成熟的 Python 测试工具,支持 CPython 2.4-3.2、Jython 和最新的 PyPy 解释器。请在此处查看包含测试示例的详细文档

如果您想安装或升级 pytest,只需输入以下命令之一

pip install -U pytest # or
easy_install -U pytest

非常感谢所有问题报告者和提问或抱怨的人,特别是 Jurko 的坚持,Laura、Victor 和 Brianna 在改进方面的帮助,以及 Ronny 的一般建议。

此致,holger krekel

2.0.1 和 2.0.2 之间的变化

  • 解决 issue32 - 通过减少相对开销来加快非常快速的测试函数的测试运行速度

  • 修复 issue30 - 扩展了 xfail/skipif 处理并改进了报告。如果您的 skip/xfail 表达式中存在语法错误,您现在可以获得清晰的错误报告。

    此外,您现在可以从 xfail/skipif 表达式访问模块全局变量,因此例如现在可以这样使用

    import pytest
    import mymodule
    @pytest.mark.skipif("mymodule.__version__[0] == "1")
    def test_function():
        pass
    

    如果模块的版本字符串不是以“1”开头,则不会运行此测试函数。请注意,指定字符串而不是布尔表达式允许 py.test 在总结测试运行时报告有意义的信息,说明导致跳过(或 xfail)测试的条件。

  • 修复 issue28 - setup_method 和 pytest_generate_tests 协同工作。setup_method 夹具方法现在也会为从 pytest_generate_tests 钩子生成的测试函数调用。

  • 修复 issue27 - collectonly 和关键字选择 (-k) 现在可以协同工作。此外,如果您执行“py.test –collectonly -q”,您现在会得到一个扁平的测试 ID 列表,您可以将其粘贴到 py.test 命令行以执行特定的测试。

  • 修复 issue25 避免了 –pdb 和 python3.2/encodings 输出中报告的问题

  • 修复 issue23 - tmpdir 参数现在可以在 Python3.2 和 WindowsXP 上使用。从 Python3.2 开始,os.symlink 可能受支持。通过要求更新的 py 库版本,py.path.local() 实现承认了这一点。

  • 修复了文档中的拼写错误(感谢 Victor Garcia,Brianna Laugher),特别感谢 Laura Creighton 也审阅了部分文档。

  • 修复了类详细进度报告的轻微错误输出(感谢 Amaury)

  • 更精确地(避免)node.Class|Function 访问的弃用警告

  • 避免回溯中出现 std unittest 断言辅助代码(感谢 Ronny)