gpt4 book ai didi

python - 如何在 mark.parametrize 之前运行 fixture

转载 作者:行者123 更新时间:2023-12-04 16:45:00 24 4
gpt4 key购买 nike

Sample_test.py

@pytest.mark.parametrize(argnames="key",argvalues=ExcelUtils.getinputrows(__name__),scope="session")
def test_execute():
#Do something

conftest.py

@pytest.fixture(name='setup',autouse=True,scope="session")
def setup_test(pytestconfig):
dict['environment']="QA"

如上面的代码所示,我需要在 test_execute 方法之前运行 setup fixture,因为 getinputrows 方法需要环境来读取工作表。不幸的是,parametrize fixture 在 setup_test 之前执行。有什么办法可以做到这一点吗?

最佳答案

你需要在测试函数中执行参数,而不是在装饰器中:

@pytest.mark.parametrize("key", [ExcelUtils.getinputrows], scope="session")
def test_execute(key):
key(__name__)
#Do something

或预先将 __name__ 绑定(bind)到函数调用,但再次在测试中调用该函数:

@pytest.mark.parametrize("key", [lambda: ExcelUtils.getinputrows(__name__)], scope="session")
def test_execute(key):
key()
#Do something

请注意,我并不完全理解您在做什么,因此这些示例可能有意义也可能没有意义。

关于python - 如何在 mark.parametrize 之前运行 fixture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58990646/

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