Как автоматически добавлять декораторы иерархии Allure для параметризованных методов в pytest?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как автоматически добавлять декораторы иерархии Allure для параметризованных методов в pytest?

Сообщение Anonymous »


В настоящее время я просматриваю подробный перевод вашего вопроса и вскоре предоставлю вам переведенную версию.

Теперь я хочу добавить декораторы @allure.epic, @allure.feature и @allure.story ко всем тестам. методы в тестовом классе единообразно. В настоящее время я использую метод, изменяя метакласс тестового класса, и код ключа выглядит следующим образом:

класс BaseDecorateCase(тип): def __new__(mcls, name, bases, attrs): если name.startswith("Тест"): иерархия = all_method_in_class_dcorated_handler(all_hierarchy_class_doc({"epic":"a","feature":"b","story":"c"}), prefix='test') вернуть иерархию(super().__new__(mcls, name, bases, attrs)) еще: return super().__new__(mcls, name, bases, attrs) def all_method_in_class_dcorated_handler (декоратор, префикс = 'тест'): защита dectheclass(cls): для имени cur_method в Inspect.getmembers(cls, Inspect.isfunction): если имя.startswith(префикс): темп = декоратор (cur_method) setattr(cls, имя, температура) вернуть cls возвращение dectheclass защита all_hierarchy_class_doc(doc): """从类注释获取结构装饰""" иерархия_карта = оценка (документ) защита _case_story_with_class_doc(func): @functools.wraps(функ) @allure.epic(hierarchy_map["epic"]) @allure.feature(hierarchy_map["feature"]) @allure.story(hierarchy_map["история"]) def-обертка(*args, **kwargs): return func(*args, **kwargs) возвратная обертка вернуть _case_story_with_class_doc класс TestCreateOrder (метакласс = BaseDecorateCase): защита test_normal(self): проходить @pytest.mark.parameterize( 'к',[1,2,3,4] ) защита test_params(self, k): проходить Для простых методов тестирования, таких как test_normal, приведенный выше код работает хорошо. Однако для параметризованных методов тестирования, таких как test_params, приведенный выше код не вступает в силу. Как я могу это изменить?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»