如何使用 Robot Framework 在控制台输出中添加颜色

How can I put colors in console output with Robot Framework

我想在 RobotFramework 的控制台输出中添加一些颜色。

我尝试使用如下控制台颜色代码:

${message}=  Set Variable  hello world!
Log To Console  \e[0;36;49m${message}\e[0;39;49m

(在 linux 控制台中,echo -e "\e[0;36;49mHello world!\e[0;39;49m" 以青色打印 Hello world!

(我也尝试了一个 \3[31m, 3[0m, ... 代码)

但是没用...

那么,是否可以这样做:

${message}=  Set Variable  hello world!
Log To Console ${message.red}

我找到了 this module 但我没有找到任何关于如何使用它的信息:(

我试过了:

Log To Console ${message.red}  robot.output.console.highlighting

${message}=  Evaluate  ${message}.red  robot.output.console.highlighting
Log To Console ${message}

但是 none 有效:'(

请问您的总体目标是什么?只是输出不同颜色的随机文本吗?

以下是我在不同的测试用例上轻松发出 PASS/FAIL 等信号以使其脱颖而出的方法:

--monitorcolors ansi

在您 运行 测试套件的命令中,将以上内容包含在命令的开头。

由于 Robot Framework 对“\”的解释,Log To Console \033[31mRed Text\033[0m 不会为输出着色。

要解决这个问题,你必须Evaluate登录控制台之前的变量:

${message}=  Evaluate  "\033[31mRed Text\033[0m"
Log To Console  ${message}

我最终得到了下面的解决方案,我发现它相当 "clean":

*** Variables ***
${BLACK}  "\033[30m"
${RED}    "\033[31m"
# More colors ANSI codes...

*** Keywords ***
Initialize Colors
  ${black}=  Evaluate  ${BLACK}
  Set Test Variable  ${black}
  ${red}=  Evaluate  ${RED}
  Set Test Variable  ${red}
  # More colors...

然后,您只需在 Suite/Test Case Setup 中使用 previous 关键字,就可以像下面这样为输出着色:

Log To Console  ${cyan}Some Text in cyan and a ${red}${variable}${cyan} in red${default}