Robotframework - 获取失败的关键字/失败的堆栈跟踪
Robotframework - get failing keyword / stack trace of failure
我有一个名为 "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
您可以随时利用 set suite variable 更新 "global" 变量。最后设置的变量值将是失败的值。
如果您创建 listener 并将日志级别设置为 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
我有一个名为 "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
您可以随时利用 set suite variable 更新 "global" 变量。最后设置的变量值将是失败的值。
如果您创建 listener 并将日志级别设置为 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