0
我正在爲運行我的PHP單元測試的watchr
編寫一個小腳本。從外部命令獲取ANSI顏色的輸出
當前腳本使用system()
運行測試,並將它們顯示爲彩色。
我試圖添加libnotify
功能,但爲此我需要解析輸出並與regexp匹配,以便通知將顯示綠色或紅色。
system()
不返回輸出,%x
確實返回,但puts p
不顯示顏色,我需要快速查看哪些測試失敗。一種選擇是運行兩次測試 - 一次用於在終端窗口中顯示,第二次用於檢查要顯示的通知,但我寧願避免它。
有沒有辦法來欺騙外部命令,以爲它是下一個支持色彩終端上運行?我檢查了測試跑步者的選擇 - 沒有辦法強制彩色輸出。 –
如果有一種方法讓它在着色時運行,應該有一種方法可以打開它,對吧?因此,在測試運行代碼的某處,它開啓或關閉着色。也許有沒有直接的命令行開關,但有代碼在那裏的地方。也許你可以猴子補丁。但是,如果這不是一個選項,你可以嘗試Ruby中的'pty'庫。它在虛擬終端中運行進程。請參閱方法#7:http://devver.wordpress.com/2009/10/12/ruby-subprocesses-part_3/ – Casper
@GermanRumm - 查看我的編輯。 – Casper