9

我正在使用 py.test 编写测试系统,并根据其他一些测试运行结果寻找一种方法来执行特定的测试。

例如,我们有标准的测试类:

import pytest

class Test_Smoke:
   def test_A(self):
       pass

   def test_B(self):
       pass

   def test_C(self):
       pass

如果 test_A() 和 test_B() 通过,则应该执行 test_C(),否则 - 跳过。

我需要一种在测试或测试类级别上执行此类操作的方法(例如,如果所有 Test_Smoke 都通过了,则执行 Test_Perfo),并且我无法使用标准方法(例如 @pytest.mark.skipif)找到解决方案。

pytest有可能吗?

4

2 回答 2

5

您可能想看看pytest-dependency。这是一个插件,如果其他一些测试失败,它允许您跳过一些测试。

于 2017-07-20T08:15:42.003 回答
0

还要考虑pytest-depends

def test_build_exists():
    assert os.path.exists(BUILD_PATH)

@pytest.mark.depends(on=['test_build_exists'])
def test_build_version():
    # this will skip if `test_build_exists` fails...
于 2021-08-17T13:07:32.707 回答