我有一个使用requests
并且需要一个活动连接的测试。在
我希望它xfail
如果连接断开,但正常情况下通过。在
以下是我尝试的:
from requests import ConnectionError
@pytest.mark.xfail(raises=ConnectionError)
class TestStuff():
def test_stuff():
do stuff
如果连接断开,这确实是xfail
,但在一般情况下是xpass
。在
有什么方法可以达到我想要的吗?在
我可以试试看/除了:
^{pr2}$但我没有收到xfail。测试总是通过,但我没有接到通知说它不能正常执行。在
我猜xfail是针对系统性错误的,这些错误可能会在某一天被修复(lib被破坏了,…),而不是像连接错误这样的暂时性错误。在
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。在
相关问题 更多 >
编程相关推荐