我的测试使用xfail
并需要有效连接。
如果连接断开,我希望它from requests import ConnectionError
@pytest.mark.xfail(raises=ConnectionError)
class TestStuff():
def test_stuff():
do stuff
,否则正常传递。
以下是我的尝试:
xfail
如果连接断开,这确实会xpass
,但在一般情况下会from requests import ConnectionError
class TestStuff():
def test_stuff():
try:
do stuff
except ConnectionError:
pass
。
有没有办法达到我想要的目的?
我可以使用try / except:
=IF(ISERROR(A2),B1,A2)
但我得不到xfail。测试总是通过,但我没有被告知它无法正常执行。
我猜xfail用于系统错误,可能会在某一天修复(破坏lib,...),而不是像连接错误那样的瞬态错误。
答案 0 :(得分: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
答案 1 :(得分:2)
在xfail
被捕获时调用ConnectionError
是一种解决方案。
检查夹具中的连接(以同样的方式 - 尝试 - 除了pytest.xfail
)并在所有需要连接的测试中使用该夹具更好。
这样,这样的灯具会导致所有相关测试都无法运行它们。