2011-02-03 109 views
5

在RSpec 2.0之前的版本中,我可以將顏色輸出管道化爲更少或將其重定向到文件。爲了做到這一點,我只需將RSPEC_COLOR環境變量設置爲true即可。但是,在框架的新主版本中,此變量已停止以定義輸出類型(顏色或單色)。是否有任何方法來管道或重定向RSpec 2.0和更高的顏色?RSpec。如何爲管道輸出或重定向輸出着色?

謝謝。

Debian GNU/Linux 5.0.7;

Ruby 1.9.2;

RSpec 2.4.0。

更新


我找到了答案由我自己。

應該使用tty配置選項來實現該效果。

這裏的例子:

# spec/spec_helper.rb 

RSpec.configure do |config| 
    config.tty = true 
end 

回答

1

通過查看sources,似乎color_enabled配置選項是現在的RSpec的配置模塊中。但是,如果輸出未完成到tty,color is disabled

我的建議是設置color_enabled = true和猴子修補RSpec的配置模塊,使是,即使未輸出到一個tty:

module RSpec 
    module Core 
    class Configuration 
     def color_enabled 
     true 
     end 
    end 
    end 
end 

這是不是最好的方式,但。這也是未經測試的,我認爲猴子補丁rspec不是最簡單的事情,因爲通常測試是通過專用命令行工具運行的。

也許你可以打開一個bug報告給維護者,並要求force_color_enabled選項?它可能會很快實施...

好運和快樂編碼!

+0

謝謝你的答案,** Oct **。我自己解決它。請參閱我答案中的**更新**部分。 – Shamaoke 2011-06-29 15:03:30

+0

順便說一句,我有一個[問題](https://github.com/rspec/rspec-core/issues/326)在Github上打開,但我沒有回答,必須自己找到解決方案。 – Shamaoke 2011-06-29 15:10:49

1

很簡單:

# spec/spec_helper.rb 

RSpec.configure do |config| 
    config.color_enabled = true 
end 
1

在這個問題的答案是正確的:

# spec/spec_helper.rb 

RSpec.configure do |config| 
    config.tty = true 
end 

然後rspec | grep --color="never" something保持着色。