Переопределение имени параметризованных функций pytest
Мои параметры определяют имя моего параметризованного pytest. Я буду использовать некоторые рандомизированные параметры для этих тестов. Чтобы мои имена отчетов в junit не перепутались, я хотел бы создать статическое имя для каждого параметризованного теста.
Возможно ли это?
Похоже, что у JUnit есть параметр: изменение имен параметризованных тестов
class TestMe:
@pytest.mark.parametrize(
("testname", "op", "value"),
[
("testA", "plus", "3"),
("testB", "minus", "1"),
]
)
def test_ops(self, testname, op, value):
Я попытался перезаписать request.node.name, однако я могу переименовать его только во время выполнения теста.
Я почти уверен Мне нужно либо написать плагин, либо приспособление. Как вы думаете, как лучше всего это сделать?
1 ответ:
Вы ищете аргумент
idspytest.mark.parametrize:Список строковых идентификаторов или вызываемый объект. Если строки, то каждая соответствует к argvalues, чтобы они были частью идентификатора теста. Если это можно назвать, то следует взять один аргумент (единственное значение argvalue) и вернуть строку или return 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):
Comments