如何在机器人框架中控制纯文本调试文件的日志级别?

时间:2017-04-26 07:27:10

标签: logging robotframework logfile log-level

我已阅读this documentation,其中解释了如何在执行期间创建纯文本日志文件。正如它所说的那样Debug FileAll messages got from test libraries are written to them;但我正在寻找一种方法来控制其内容的日志级别。是不是有任何机制或技巧来获得它?或者甚至任何其他机器人框架选项也具有Debug file的功能(在测试过程中将测试执行消息写入纯文本)?

1 个答案:

答案 0 :(得分:3)

无法控制进入调试文件的详细信息量。调试文件的重点是创建一个详细的输出用于调试目的。

如果您希望在测试运行时将信息写入纯文本文件,您可以随时创建一个listener来编写您想要的任何内容。

例如,假设您要编写每个测试开始和结束的时间。第一步是创建一个监听器。在本例中,创建一个名为" CustomLog.py"的文件。具有以下内容:

import datetime
class CustomLog:
    ROBOT_LISTENER_API_VERSION = 2

    def __init__(self, filename='listen.txt'):
        self.logfile = open("/tmp/robot.log", 'w')

    def _write(self, message):
        now = datetime.datetime.now()
        self.logfile.write(str(now) + " " + message + "\n")
        self.logfile.flush()

    def start_test(self, name, attrs):
        self._write("start_test: %s" % name)

    def end_test(self, name, attrs):
        self._write("end_test: %s (%s)" % (name, attrs["status"]))

    def close(self):
        self.logfile.close()

您可以通过--listener参数将此文件的名称传递给机器人:

robot --listener CustomLog.py ...

侦听器界面使您能够执行套件,测试和关键字的启动和停止操作。这些方法都包含在文档中。