如何使用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并且相互配合工作很好