栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在pytest skip-if条件下使用命令行选项

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在pytest skip-if条件下使用命令行选项

看起来按照命令行选项控制测试跳过的真正方法是将测试标记为动态 跳过

  1. 使用 pytest_addoption* 钩子添加 选项, 如下所示: *

    def pytest_addoption(parser):
    parser.addoption(
    “–runslow”, action=”store_true”, default=False, help=”run slow tests”
    )


  2. 使用 pytest_collection_modifyitems 钩子添加标记,如下所示:

    def pytest_collection_modifyitems(config, items):
    if config.getoption(“–runslow”):
    # –runslow given in cli: do not skip slow tests
    return
    skip_slow = pytest.mark.skip(reason=”need –runslow option to run”)
    for item in items:
    if “slow” in item.keywords:
    item.add_marker(skip_slow)

  3. 在测试中添加标记:

    @pytest.mark.slow
    def test_func_slow():
    pass

例如,如果您想在测试中使用CLI中的数据,则使用它的 凭据
,足以在从pytestconfig检索数据时指定跳过选项:

  1. 使用 pytest_addoption* 钩子添加 选项, 如下所示: *

    def pytest_addoption(parser):
    parser.addoption(
    “–credentials”,
    action=”store”,
    default=None,
    help=”credentials to …”
    )

  2. 从pytestconfig获取它时使用 跳过 选项

    @pytest.fixture(scope=”session”)
    def super_secret_fixture(pytestconfig):
    credentials = pytestconfig.getoption(‘–credentials’, skip=True)

  3. 在测试中照常使用夹具:

    def test_with_fixture(super_secret_fixture):

在这种情况下,您会收到类似这样的内容,即您不向

--credentials
CLI发送选项:

Skipped: no 'credentials' option found

最好使用_pytest.config.get_config而不是不推荐使用的
pytest.config
如果您仍然不愿意像这样使用pytest.mark.skipif:

@pytest.mark.skipif(not _pytest.config.get_config().getoption('--credentials'), reason="--credentials was not specified")


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430157.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号