gpt4 book ai didi

python - 用于使用参数元组进行测试的 Pytest 文本注释

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:59 25 4
gpt4 key购买 nike

我正在为这类问题寻找更优雅的解决方案:

def ids(x):
if isinstance(x, int):
return str(x)
elif isinstance(x, str):
return x[0]


@pytest.mark.parametrize("number, string",
[
(1, "One"),
(2, "Two"),
(3, "Three")
],
ids=ids)
def test_stupid(number, string):
assert 0 == 1

此代码将生成测试名称:“1-O”、“2-T”、“3-T”。

问题是 pytest 对元组中的所有参数使用相同的函数,我必须处理丑陋的 isinstance 调用。

有没有更好的办法解决这个问题?

最佳答案

传递一个字符串列表而不是一个可调用的ids:

import pytest

PARAMS = [
(1, "One"),
(2, "Two"),
(3, "Three")
]


def my_id(number, string):
return '-'.join([str(number), string[0]])


@pytest.mark.parametrize("number, string",
PARAMS,
ids=[my_id(number, string) for number, string in PARAMS])
def test_stupid(number, string):
assert 0 == 1

关于python - 用于使用参数元组进行测试的 Pytest 文本注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37544195/

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