我有一个函数和一个测试
def foo(a):
return bar(a)
@pytest.mark.parametrize(
'number',
[1,2,3]
)
@pytest.mark.dependency
def test_foo(number):
assert foo(number) > SOME_CONST # Simplistic example, real case is more nuanced
我正在使用 pytest 和 pytest_dependency 模块。foo
是在许多其他测试中使用的函数。我有一个要依赖的函数,test_foo
下面的代码不起作用:
@pytest.mark.dependency(depends=['test_foo'])
@pytest.mark.parametrize(
'param',
itertools.permutations(['a','b','c','d','e'],2),
ids=repr,
)
def test_bar(param):
...
important_result = foo(param)
...
理论上,如果test_foo
失败,test_bar
则将被跳过。但是,当我参数化 时,无论 的结果如何,都会跳过 的test_bar
每个实例化。test_bar
test_foo
为了澄清,此代码按预期工作(未跳过 test_bar):
@pytest.mark.dependency(depends=['test_foo'])
def test_bar():
param = some_fnc(['a', 'b'])
...
important_result = foo(param)
...