我有一个小测试,它使用@pytest.parametrize
import pytest
class TestBla:
@pytest.mark.parametrize('arg', (True, False))
def test(self, arg):
assert arg
我想跳过False
案例,而不是运行并失败,因此我在测试中添加了以下装置:
@pytest.fixture(autouse=True)
def skipper(self, request):
if request.getfixturevalue('arg') is False:
pytest.skip()
它非常有效:pytest -s test_skips.py
跳过False
并传递True
我的问题是:这个fixture依赖于具有'arg'
参数的函数如果有人更改了它的名称怎么办?我可以让它更健壮吗
之所以在夹具中而不是在测试本身中执行此跳过,是为了使测试尽可能短,并将所有其他逻辑移到外部这是个坏主意吗?
顺便说一句,我今天知道了
要使事情更清晰,您可以做的另一件事是使用特定的标记进行决策,然后从conftest.py中的pytest_runtest_setup hook方法查询标记:
然后在conftest.py中:
更多信息可在此处找到: https://docs.pytest.org/en/latest/writing_plugins.html
相关问题 更多 >
编程相关推荐