Переопределение имени параметризованных функций 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, однако я могу переименовать его только во время выполнения теста.



Я почти уверен Мне нужно либо написать плагин, либо приспособление. Как вы думаете, как лучше всего это сделать?

592   1  

1 ответ:

Вы ищете аргумент ids pytest.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

    Ничего не найдено.