pytest参数化显式仅参数

时间:2019-08-06 12:50:40

标签: pytest

给出一个测试,是否有某种方法可以将参数标记为仅显式?

@pytest.mark.parametrize('fixture_mode', ('m1', 'm2', 'm3', \
     mark_this_as_explicit_param('m4')))
def test_stuff(fixture_mode):
   ...

这样,用户默认情况下会获得m1,m2,m3,并且只有在他们指定-k关键字或pytest tests.py::test_stuff[m4]时才获得参数m4。

我看不到为测试提供一组默认参数以及允许使用相同语法运行的一组允许的替代值和特殊测试的好方法。我确实看到了一种使用pytest_generate_tests添加命令行选项的方法:

pytest --m4 tests.py::test_stuff

但这意味着用户无法运行“所有模式”:

pytest tests.py::test_stuff -k [m1 or m2 or m3 or m4]

一个很好的例子是“仅使用模拟运行”与“在模拟+实时站点上运行”等。

我终于设法使用带有标记和ID的metafunc.config.getoption("keyword", "")metafunc.parametrize来做到这一点。但这很可怕,要求我重新评估关键字,并且通常会破坏测试生成器。它也不能与方括号语法一起使用,因为它不会显示在关键字中。可以肯定我做错了。例如,请参见:https://pastebin.com/H5E3DxDJ

0 个答案:

没有答案