我有一个名为“ 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
答案 0 :(得分:3)
如果创建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
答案 1 :(得分:0)
您可能可以随时使用set suite variable更新“全局”变量。最后设置的变量值将是失败的值。