pytest:xfail on给定的异常,传递otherwis

2024-05-12 23:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用requests并且需要一个活动连接的测试。在

我希望它xfail如果连接断开,但正常情况下通过。在

以下是我尝试的:

from requests import ConnectionError

@pytest.mark.xfail(raises=ConnectionError)
class TestStuff():
    def test_stuff():
        do stuff

如果连接断开,这确实是xfail,但在一般情况下是xpass。在

有什么方法可以达到我想要的吗?在

我可以试试看/除了:

^{pr2}$

但我没有收到xfail。测试总是通过,但我没有接到通知说它不能正常执行。在

我猜xfail是针对系统性错误的,这些错误可能会在某一天被修复(lib被破坏了,…),而不是像连接错误这样的暂时性错误。在


Tags: fromtestimportpytestdef错误情况requests
2条回答

pytest从测试或设置函数中支持命令式xfail。在

使用您拥有的try/except代码,并将pytest.xfail('some message')包含在except主体中。在

参见: http://doc.pytest.org/en/latest/skipping.html#imperative-xfail-from-within-a-test-or-setup-function

ConnectionError被捕获时调用xfail是一种解决方案。在

最好检查fixture中的连接(相同的方法-除了使用pytest.xfail),并在所有需要连接的测试中使用该fixture。在

这样,这样的fixture将导致所有依赖的测试在不运行它们的情况下xfail。在

相关问题 更多 >