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

时间:2016-02-26 13:03:52

标签: colors robotframework

我想在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!

(我还尝试了一个\\033[31m, \033[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}

但没有效果:'(

2 个答案:

答案 0 :(得分:6)

由于机器人框架对'\'的解释,Log To Console \\033[31mRed Text\\033[0m不会对输出着色。

要解决此问题,您必须先登录Evaluate变量才能登录到控制台:

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

我最终得到了以下解决方案,我发现它很“干净”:

*** 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...

然后,您只需在套件/测试用例设置中使用上一个关键字,就可以将输出着色如下:

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

答案 1 :(得分:1)

我可以问你的总体目标吗?它只是输出不同颜色的随机文本吗?

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

--monitorcolors ansi

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