Используйте приспособление pytest в декораторе функций - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу создать декоратор для моих тестовых функций, который имеет несколько применений.Один из них помогает добавить свойства к сгенерированному junitxml.

Я знаю, что есть встроенный pytest для приспособления , называемый record_property, который делает именно это.Как я могу использовать этот прибор в моем декораторе?

def my_decorator(arg1):
    def test_decorator(func):
        def func_wrapper():
            # hopefully somehow use record_property with arg1 here
            # do some other logic here
            return func()
        return func_wrapper
    return test_decorator

@my_decorator('some_argument')
def test_this():
    pass # do actual assertions etc.

Я знаю, что могу передать прибор непосредственно в каждую тестовую функцию и использовать его в тестах, но у меня много тестов, и он кажется крайне избыточнымсделать это.

Кроме того, я знаю, что могу использовать conftest.py, создать собственный маркер и вызвать его в декораторе, но у меня много файлов conftest.py, и я не управляю всеми ими в одиночку, поэтомуне могу применить его.

Наконец, попытка импортировать прибор непосредственно в мой модуль декоратора, а затем использовать его, приводит к ошибке - так что это тоже не пойдет.

Спасибо запомощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...