Python Pybot-将测试库打印语句重定向到控制台

Python Pybot-将测试库打印语句重定向到控制台,python,logging,robotframework,Python,Logging,Robotframework,测试机器人 *** 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 stream中看到这些打印语句

测试机器人

*** 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 stream中看到这些打印语句


由于log.html有很多文本标记,我更喜欢在控制台上将日志消息视为纯文本。如何配置此功能?

Robot重新定义了
sys.stdout
。这在robot framework用户指南中的标签部分中提到(请参阅副标题“登录到控制台”)

另一个选项(仅适用于Python)是编写 使用此选项时发送给sys.\uu stdout\uuuu或sys.\uuu stderr\uuuuuuu的消息 方法时,消息会立即写入控制台,而不会 完全写入日志文件

例如:

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

Robot重新定义了
sys.stdout
。《Robot框架用户指南》中标签部分提到了这一点(请参阅副标题“登录到控制台”)

另一个选项(仅适用于Python)是编写 使用此选项时发送给sys.\uu stdout\uuuu或sys.\uuu stderr\uuuuuuu的消息 方法时,消息会立即写入控制台,而不会 完全写入日志文件

例如:

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

Robot重新定义了
sys.stdout
。《Robot框架用户指南》中标签部分提到了这一点(请参阅副标题“登录到控制台”)

另一个选项(仅适用于Python)是编写 使用此选项时发送给sys.\uu stdout\uuuu或sys.\uuu stderr\uuuuuuu的消息 方法时,消息会立即写入控制台,而不会 完全写入日志文件

例如:

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

Robot重新定义了
sys.stdout
。《Robot框架用户指南》中标签部分提到了这一点(请参阅副标题“登录到控制台”)

另一个选项(仅适用于Python)是编写 使用此选项时发送给sys.\uu stdout\uuuu或sys.\uuu stderr\uuuuuuu的消息 方法时,消息会立即写入控制台,而不会 完全写入日志文件

例如:

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
但我感兴趣的是在控制台stdout stream中看到这些打印语句

为此,我使用内置库。 例如:

但我感兴趣的是在控制台stdout stream中看到这些打印语句

为此,我使用内置库。 例如:

但我感兴趣的是在控制台stdout stream中看到这些打印语句

为此,我使用内置库。 例如:

但我感兴趣的是在控制台stdout stream中看到这些打印语句

为此,我使用内置库。 例如:


如何
sys.stdout.write(“这是robot test-test.robot的testlib日志”)
?这很复杂…我不喜欢这种类似java的打印语句…它不是“类似java的打印语句”这是你写给标准输出的方式。Ironman,你的评论对我很有帮助,谢谢……但我正在努力理解,robot框架是如何重定向打印语句的,以及打印处理程序是如何配置的?明白了,对不起。你能添加你正在使用的pybot吗?我搜索谷歌,发现它与你所拥有的不一样。如何
sys.stdout.write(“这是robot test-test.robot的testlib日志”)
?这很复杂…我不喜欢这种类似java的打印语句…它不是“类似java的打印语句”这是你写给标准输出的方式。Ironman,你的评论对我很有帮助,谢谢……但我正在努力理解,robot框架是如何重定向打印语句的,以及打印处理程序是如何配置的?明白了,对不起。你能添加你正在使用的pybot吗?我搜索谷歌,发现它与你所拥有的不一样。如何
sys.stdout.write(“这是robot test-test.robot的testlib日志”)
?这很复杂…我不喜欢这种类似java的打印语句…它不是“类似java的打印语句”这是你写给标准输出的方式。Ironman,你的评论对我很有帮助,谢谢……但我正在努力理解,robot框架是如何重定向打印语句的,以及打印处理程序是如何配置的?明白了,对不起。你能添加你正在使用的pybot吗?我搜索谷歌,发现它与你所拥有的不一样。如何
sys.stdout.write(“这是robot test-test.robot的testlib日志”)
?这很复杂…我不喜欢这种类似java的打印语句…它不是“类似java的打印语句”这是你写给标准输出的方式。Ironman,你的评论对我很有帮助,谢谢……但我试图理解,robot框架是如何重定向打印语句的,以及打印处理程序可以被配置的?明白了,抱歉。你能添加你正在使用的pybot吗?我在谷歌搜索,发现它与你的不一样。