Test.robot,
*** Settings ***
Library roppie
*** Test Cases ***
Log Test
Robot Print
roppie.py,
def robot_print():
print "this is a testlib log for robot test - Test.robot"
现在,当我运行pybot Test.robot
时,打印语句将打印在log.html中。但我有兴趣在控制台stdout流中看到这些打印语句。
由于log.html有很多文本标记,我更喜欢在控制台上将日志消息看作纯文本。如何配置?
答案 0 :(得分:3)
机器人重新定义sys.stdout
。机器人框架用户指南中标有Logging Information的部分提到了这一点(参见字幕“登录到控制台”。
另一个选项,只适用于Python,是写作 发送到sys .__ stdout__或sys .__ stderr__的消息。使用时 方法,消息立即写入控制台,而不是 写在所有
的日志文件中
例如:
import sys
def robot_print():
sys.__stdout__.write("this is a testlib log for robot test - Test.robot")
或者,如果你不是“喜欢这个java打印语句的粉丝......”(基于你对原始问题的评论),你可以暂时重新分配sys.stdout
:
def robot_print():
pybot_stdout = sys.stdout
sys.stdout = sys.__stdout__
print "this is a testlib log for robot test - Test.robot"
sys.stdout = pybot_stdout
答案 1 :(得分:0)
但是我有兴趣在控制台stdout流中看到这些打印语句。
为此,我使用了Builtin库中的Log to console。 例如:
from robot.libraries.BuiltIn import BuiltIn
bi=BuiltIn()
def robot_print():
bi.log_to_console("this is a testlib log for robot test - Test.robot")