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

时间:2021-04-05 11:40:54

标签: python pytest

我有一个包含 pytest 测试的模块。那里有很多测试,首先检查是否与目标连接。如果此测试失败,则没有理由等待此特定模块中的所有其他测试超时。如果此特定测试失败,我想停止模块中的所有测试。

我找到了 pytest.exit(),但是它太强了,它终止了整个 pytest 运行。我有其他模块可以使用,所以我想在一个(当前)模块中快速跳过/失败所有其他测试。

有没有办法做到这一点?

1 个答案:

答案 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