我有一个带有pytest测试的模块。那里有很多测试,第一个测试是检查是否有到目标的连接。如果此测试失败,则没有理由等待此特定模块中的所有其他测试超时。如果这一特定测试失败,我想停止模块中的所有测试。
我找到了pytest.exit()
,但它太强了,它终止了整个pytest运行。我还有其他模块要处理,所以我想只在一个(当前(模块中快速跳过/失败所有其他测试。
有办法做到这一点吗?
您可以使用@pytest.mark.skipif注释,而不是先运行另一个测试
def has_connection():
return True
@pytest.mark.skipif(not has_connection(), reason='No connection')
def test_example(self):
pass
如果所有测试都在类下,您可以将注释添加到类中,这将跳过所有测试
@pytest.mark.skipif(not has_connection(), reason='No connection')
class TestExample:
def test_example1(self):
pass
def test_example2(self):
pass