2016-02-26 148 views
3

我想在RobotFramework的控制檯輸出中添加一些顏色。如何在Robot Framework的控制檯輸出中添加顏色

我試圖使用控制檯顏色代碼等:

${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!在青色)

(I也試圖與一個\並且還\033[31m, \033[0m, ...代碼)

但它不起作用...

那麼,是否有可能做索姆ething像:

${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作品:'(

回答

5

由於Robot Framework對'\'的解釋,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} 
0

我可以問你的總體目標嗎?它只是輸出不同顏色的隨機文本?

這是我做什麼,以輕鬆信號PASS/FAIL等不同的測試案例,使他們脫穎而出:

--monitorcolors ansi 

在您的命令來運行測試套件,上面包括向命令的開始。

+1

我沒有選項--monitorcolors但我有--consolecolors這似乎是相應的選項。這並沒有解決我的問題:它影響「通過」/「失敗」顏色啓用,但不影響其他輸出顏色。 –

+0

很高興你能解決你的問題,道歉我的答案是廣泛的,我做了假設,你正在尋找顏色通過/失敗,並限定其清晰 – shicky

+1

你的評論讓我問自己正確的問題,讓我在我的答案的路上,所以非常感謝,雖然;-) –