如果夹具在pytest中失败,请跳过测试套件

时间:2019-12-18 16:44:39

标签: python pytest

我有一个测试套件,它是一个类,每个测试方法都是一个测试用例。对于每种方法(测试用例),我也都有一个固定装置,它们可以完成一些基本的工作。我有一个奇怪的要求,如果testfixture失败,我想跳过测试套件中的所有测试用例。

下面是我拥有的示例套件

class TestFeature:
    @pytest.fixture(scope="function", autouse=True)
    def _wrapper(self):
        print("Some precomditions")
        yield
        print("some post conditions")

    def test_first_testcase(self):
        print("First testcas")

    def test_second_testcase(self):
        print("second testcas")

    def test_third_testcase(self):
        print("Third testcas")

现在,我想如果我的装置失败了,我想中止该测试套件。假设我的第一个测试用例失败了。下一个测试用例的夹具失败。我想中止套件,不想执行第三个测试用例。

如何在pytest中执行此操作

1 个答案:

答案 0 :(得分:1)

pytest allows you通过使用x标志来实现:

pytest -x

如果您希望在退出前自定义失败次数,也可以使用maxfail标志:

--maxfail=NUMBER

如果需要从代码中退出测试套件,可以使用exit方法:

import pytest

pytest.exit()