2011-07-07 21 views
14

我想在我的開發環境中使用單元測試輸出顏色。但是,我無法在Linux(Debian和Ubuntu)上運行它。當我包括以下庫:如何使用lib minitest或Test:Unit單位測試顏色?

require 'minitest/autorun' 
require 'minitest/unit' 
require 'minitest/pride' 

我得到:

/usr/local/rvm/gems/ruby-1.9.2-p136/gems/minitest-2.3.1/lib/minitest/pride.rb:35:in `<top (required)>': undefined method `output' for MiniTest::Unit:Class (NoMethodError) 

造成代碼:

MiniTest::Unit.output = PrideIO.new(MiniTest::Unit.output) 

我已經看到了工作Rspec variant。不幸的是,我的Ruby知識不足以看出差異。

回答

13

第1步:使用最新版本的寶石(我認爲這將是固定在紅寶石1.9.3)

gem install minitest 

第2步:需要「MINITEST /驕傲」在命令行上,而不是在你的代碼

ruby -rminitest/pride your_ruby_script.rb 

..並在如果使用Rubymin代碼僅僅需要 'MINITEST /自動運行'

require 'minitest/autorun' 

e,只需在測試的默認配置中添加

-rminitest 

。 =>配置想

-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -rminitest/pride 
+0

謝謝。需要我的代碼而不是在命令行的自豪感雖然工作得很好。 – Mosselman

1

我目前使用purdytest與1.9.2

14

turn一個旋轉。在這篇文章

group :test do 
    gem 'turn', :require => false 
end 
+0

應該提到的是,在這個時候,轉向*不兼容MiniTest版本5及以上。 –

+0

你是對的,馬特。 MiniTest v5支持正在這裏進行跟蹤:https://github.com/turn-project/turn/issues/127 –

+1

對於MiniTest 5+,只有'minitest-rg'爲我做了。 – Abdo

-1
$ gem install mynyml-redgreen --source http://gemcutter.org 

# in your test file 
require 'redgreen' 

redgreen並結合彼此很好地交替工作,順便

3

只需將這些行添加到您的test_helper.rb中的文件後,需要 '軌道/ test_help'

require "minitest/reporters" 
Minitest::Reporters.use! 
在你的Gemfile

添加

gem 'minitest-reporters', '~> 1.0.7' 

這將讓你的耙的測試是在紅色和綠色,但它也帶來了回溯。擺脫所有這些額外的回溯日誌添加到您的Gemfile然後捆綁:

gem 'mini_backtrace' 

然後在配置/初始化/ backtrace_silencers.rb加入這一行切斷所有多餘的東西,RVM

Rails.backtrace_cleaner.add_silencer { |line| line =~ /rvm/ } 

希望對你有用,讓我知道你是否需要更多細節。