gpt4 book ai didi

python - 是否可以生成参数化输入?

转载 作者:行者123 更新时间:2023-12-01 01:49:59 25 4
gpt4 key购买 nike

我有一组相当大的参数来运行几个测试用例。我更愿意将集合放在其他地方,而不是放在参数化语句中,如果可能的话,填充参数化。通过这种方式参数化多个测试用例不会产生重复的大块测试用例参数。

如果这是不可能的,是否有另一种方法来“共享”此参数化?为了避免重复装饰受影响的测试用例?

import pytest

# this data structure has about 20 of these
@pytest.mark.parametrize("a, b, c" [('hello' [(1,1), ('abc','abc')],[(1, 2)]....)
def test_case_a(a, b, c):

# the same data and arguments as test_case_a
@pytest.mark.parametrize("a, b, c" [('hello' [(1,1), ('abc','abc')],[(1, 2)]....)
def test_case_b(a, b, c):

最佳答案

只需将共享参数放入全局变量中即可:

测试.py

import pytest

SHARED_PARAMS = "a, b, c", [['hello', [(1, 1), ('abc', 'abc')], [(1, 2)]]]

@pytest.mark.parametrize(*SHARED_PARAMS)
def test_case_a(a, b, c):
pass

@pytest.mark.parametrize(*SHARED_PARAMS)
def test_case_b(a, b, c):
pass

执行结果:

$ pytest -v
=========================== test session starts =========================
platform linux -- Python 3.7.0, pytest-3.6.2, py-1.5.4, pluggy-0.6.0
-- /home/user/.virtualenvs/test3.7/bin/python3.7
cachedir: .pytest_cache
rootdir: /home/user/projects/so, inifile:
collected 2 items

so/test_api.py::test_case_a[hello-b0-c0] PASSED
so/test_api.py::test_case_b[hello-b0-c0] PASSED

======================== 2 passed in 0.01 seconds =======================

关于python - 是否可以生成参数化输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50822575/

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