我有一个包含 pytest 测试的模块。那里有很多测试,首先检查是否与目标连接。如果此测试失败,则没有理由等待此特定模块中的所有其他测试超时。如果此特定测试失败,我想停止模块中的所有测试。
我找到了 pytest.exit()
,但是它太强了,它终止了整个 pytest 运行。我有其他模块可以使用,所以我想在一个(当前)模块中快速跳过/失败所有其他测试。
有没有办法做到这一点?
答案 0 :(得分:1)
您可以使用 @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