Robotframework - получить сбой ключевого слова / стека трассировки сбоя - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть ключевое слово "debug teardown", которое печатает статус теста, а затем запускает ключевое слово debuglibrary Debug, если тест не пройден.

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

Можно ли получить трассировку стека или последнее тестовое ключевое слово и записать его в консоль?

Вот мое ключевое слово Debug Teardown:

Debug Teardown
    Run Keyword If Test Failed                  Log    ${TEST STATUS}: ${TEST MESSAGE}    ERROR
    Run Keyword If Test Failed                  Debug

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

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

Например, вот слушатель, который напечатает для вывода последнего сообщения журнала при сбое ключевого слова:

from __future__ import print_function
class my_listener():
    ROBOT_LISTENER_API_VERSION = 2

    def __init__(self):
        self.ROBOT_LIBRARY_LISTENER = self
        self.last_log = None

    def _log_message(self, message):
        self.last_log = message

    def _end_keyword(self, name, attrs):
        if attrs['status'] == 'FAIL':
            print("\n******\n", self.last_log['message'])

Вы могли бы использовать его, импортируя прослушиватель как обычную библиотеку, а также устанавливая уровень журнала DEBUG (в противном случае вы получите ошибку, но без трассировки стека).

Пример:

*** Settings ***
Library      my_listener
Suite Setup  set log level  DEBUG

*** Test cases ***
Example
    some keyword
0 голосов
/ 04 сентября 2018

Возможно, вы сможете использовать установить переменную набора для обновления «глобальной» переменной по мере продвижения. Последним установленным значением переменной будет значение, которое не удалось.

...