[py.test]: 测试依赖

16

我正在使用 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中是否可能实现?


这是可能的,但没有直接的选项。您想在模块或测试类级别执行此操作吗?(“...测试或测试类级别”对我来说不完全解析) - hpk42
是的,首先在测试类级别上。 但如果可能的话,针对特定的测试用例会更好:例如“如果test_A失败,则跳过test_B”,甚至像“test_B需要test_A”这样的内容也可以。 - Stanislaw Bobritsky
2个回答

5

您可能想看一下pytest-dependency。它是一个插件,允许您在某些其他测试失败时跳过某些测试。


2

还要考虑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...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接