如果pytest中的特定测试失败,如何停止在模块中运行其他测试



我有一个带有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

最新更新