pytest - 覆盖测试函数defaullt值

时间:2015-11-19 12:54:25

标签: pytest

我有一个pytest testconf和一个测试函数 跑步时我想要那个:

pytest -q -option="choose_a"
它将通过A 并在运行时

pytest
它将通过B. 问题是它没有看到my_param'在灯具中,因为它有一个默认参数。我能做些什么来使这个工作和优雅?

我当前的临时解决方案(我不喜欢)正在删除默认值,并使用" if" conftest.pytest_generate_tests中的陈述......请给我一个更好的陈述:)

conftest.py:

def pytest_addoption(parser):
    parser.addoption("--myoption", action="append", default=[], help="list of choices")


def pytest_generate_tests(metafunc):
    if 'my_param' in metafunc.fixturenames:
        if 'choose_a' in metafunc.config.option.myoption:
            metafunc.parametrize("my_param", ["A"])

mytest.py:

def test_my(my_param='B'):
    do_stuff(my_param)

0 个答案:

没有答案