通常用于参数化测试方法-测试类test_barTestFoo的pytest输出看起来像

path/to/test_file.py:67: TestFoo.test_bar[param1] FAILED


是否可以根据TestFoo实例的参数注入自己的名称?

path/to/test_file.py:67: TestFoo.test_bar[own-generic-name] FAILED


其中own-generic-namestr(self.baz)实例的TestFoo

最佳答案

您可以使用ids关键字将字符串列表传递给parametrize以便自定义测试ID:

import pytest

@pytest.mark.parametrize('i', [1, 2], ids=['param1', 'param2'])
def test_foo(i):
    pass


生成此输出:

test_foo.py:3: test_foo[param1] PASSED
test_foo.py:3: test_foo[param2] PASSED


正在使用自定义使用callable生成的ID,并且看起来它将很快合并。

10-08 20:17