如何使用lib minitest或Test:Unit对unit testing进行着色?

我想在我的开发环境中让unit testing输出颜色。 但是,我无法在Linux(Debian和Ubuntu)上运行它。 当我包含以下库时:

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 `': undefined method `output' for MiniTest::Unit:Class (NoMethodError) 

由代码引起:

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

我见过一个有效的Rspec变种 。 不幸的是,我的Ruby知识还不足以看出差异。

第1步:使用最新版本的gem(我认为它将在Ruby 1.9.3中修复)

 gem install minitest 

第2步:在命令行中输入“minitest / pride”,而不是在代码中

 ruby -rminitest/pride your_ruby_script.rb 

..并且在您的代码中只需要’minitest / autorun’

 require 'minitest/autorun' 

如果你使用Rubymine,只需添加

 -rminitest 

在测试的默认配置中。 =>配置想

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

轮流转动 。

将其添加到您的Gemfile:

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

请参阅https://github.com/tenderlove/purdytest/issues/1 。 它似乎是1.9.2附带的最小版本的已知错误。 对于其他人,添加

 gem "minitest" 

在你文件的最顶端做了伎俩。

在require’trail / test_help’之后,只需将这些行添加到test_helper.rb文件中

 require "minitest/reporters" Minitest::Reporters.use! 

在你的gemfile中添加

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

这将使你的rake测试成为红色和绿色,但它也会带来回溯。 摆脱所有这些额外的回溯日志添加到你的gemfile然后捆绑:

 gem 'mini_backtrace' 

然后在config / initializers / backtrace_silencers.rb中添加此行以删除所有额外的rvm内容

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

希望对你有用,如果你需要更多细节,请告诉我。

我目前使用的是1.9.2的purdytest

试试看这篇文章关于使用turn gem来获得漂亮的外观和可配置的输出。 http://rawonrails.blogspot.com/2012/01/better-minitest-output-with-turn-gem.html

 $ gem install mynyml-redgreen --source http://gemcutter.org # in your test file require 'redgreen' 

顺便说一句,redgreen并且相互配合工作很好