gpt4 book ai didi

python - 覆盖 pytest 参数化函数名称

转载 作者:太空狗 更新时间:2023-10-29 17:45:17 26 4
gpt4 key购买 nike

我的参数决定了我的参数化 pytest 的名称。我将为这些测试使用一些随机参数。为了不让我在 junit 中的报告名称弄乱,我想为每个参数化测试创建一个静态名称。

这可能吗?

JUnit 似乎有一个参数:Changing names of parameterized tests

class TestMe:
@pytest.mark.parametrize(
("testname", "op", "value"),
[
("testA", "plus", "3"),
("testB", "minus", "1"),
]
)
def test_ops(self, testname, op, value):

我尝试覆盖 request.node.name 但我只能在测试执行期间重命名它。

我几乎可以肯定,我要么需要编写一个插件,要么需要一个固定装置。您认为解决此问题的最佳方法是什么?

最佳答案

您正在寻找 pytest.mark.parametrizeids 参数:

list of string ids, or a callable. If strings, each is correspondingto the argvalues so that they are part of the test id. If callable, itshould take one argument (a single argvalue) and return a string orreturn None.

你的代码看起来像

@pytest.mark.parametrize(
("testname", "op", "value"),
[
("testA", "plus", "3"),
("testB", "minus", "1"),
],
ids=['testA id', 'testB id']
)
def test_industry(self, testname, op, value):

关于python - 覆盖 pytest 参数化函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37575690/

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