gpt4 book ai didi

python - pytest - 如何将 pytest_addoption 值传递给 pytest 参数化?

转载 作者:行者123 更新时间:2023-12-04 08:51:15 28 4
gpt4 key购买 nike

我必须在我存储在 pytest addoption 中的 pytest 命令中传递一个参数。我想在 pytest parametrize 函数中使用这些值。

命令:

pytest --range-from 3 --range-to 5 test.py

conftest.py:

def pytest_addoption(parser):
parser.addoption("--range-from", action="store", default="default name")
parser.addoption("--range-to", action="store", default="default name")

测试.py:

@pytest.mark.parametrize('migration_id', migration_list[range-from:range-to])
def test_sync_with_migration_list(migration_id):
migration_instance = migration.parallel(migration_id=migration_id)
migration_instance.perform_sync_only()

我想在 parametrize 中使用 range-fromrange-to 的值。

我无法使用这些值。请建议如何做到这一点。

最佳答案

一种简单的方法是将您的命令行参数分配给环境变量并在您想要的任何地方使用。我不确定你想以哪种方式使用变量,所以在这里我将简单的打印语句放在测试中。

conftest.py

def pytest_addoption(parser):
parser.addoption("--range-from", action="store", default="default name") #Let's say value is :5
parser.addoption("--range-to", action="store", default="default name") #Lets's say value is 7

def pytest_configure(config):
os.environ["range_from"]=config.getoption("range-from")
os.environ["range_to"]=config.getoption("range-to")

测试.py:

@pytest.mark.parametrize('migration_id', [os.getenv("range_from"),os.getenv("range_to")])
def test_sync_with_migration_list(migration_id):
print(migration_id)

Output :
5
7

希望对你有帮助!!

关于python - pytest - 如何将 pytest_addoption 值传递给 pytest 参数化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64091628/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com