python - 在 py.test 中,当我明确跳过标记为 xfail 的测试时,如何将其报告为 'skipped' 而不是 'xfailed' ?

标签 python pytest

我有一个标记为 xfail 的 py.test 测试函数:

@pytest.mark.xfail
def test_that_fails():
    assert 1 == 2

在我的 pytest_runtest_setup() Hook 中,我明确跳过了这个测试:

def pytest_runtest_setup (item):
    pytest.skip ('Skipping this test')

当我运行 py.test 时,它报告测试失败:

tests.py x

========================== 1 xfailed in 1.69 seconds ===========================

如何让 py.test 将此测试报告为已跳过?

我好像在问,“我怎样才能在我的 pytest_runtest_setup() Hook 中从这个测试中删除 xfail 标记?”

谢谢。

最佳答案

感谢错误报告:)

我同意期望 py.test 将此报告为“跳过”测试而不是 xfail 是有道理的。毕竟,如果跳过测试,则无法确定 xfail-outcome (xfail/xpass)。我刚刚解决了这个问题,您可以通过键入以下内容进行安装:

pip_install -i http://pypi.testrun.org -U pytest
# using easy_install is fine as well

这应该让你得到 2.2.5.dev4 与“py.test --version”并解决你的问题。它将成为下一个 pypi 版本的一部分。

关于python - 在 py.test 中,当我明确跳过标记为 xfail 的测试时,如何将其报告为 'skipped' 而不是 'xfailed' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105828/

相关文章:

Python 在同一文件夹中找不到模块

python - 如何在Google Colab中获得分配的GPU规范

python - Matplotlib LocatableAxes xtick 标签

Python,导入配置文件的最佳实践

python - 仅运行取决于更改的测试

python - 如何创建一个依赖于另一个参数化 fixture 值的参数化 fixture ?

python - NumPy IFFT 在 OaA 卷积算法中引入黑条

Python pytest 不显示断言差异

python - 这 3 个 pytest 装置的功能差异是什么?

python - pytest - 使用 patch 作为装饰器来修补常量