我想在我的开发环境中让单元测试输出颜色。但是,我无法在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 `<top (required)>': undefined method `output' for MiniTest::Unit:Class (NoMethodError)
由代码引起:
MiniTest::Unit.output = PrideIO.new(MiniTest::Unit.output)
我见过工作Rspec variant。不幸的是,我的Ruby知识还不足以看到差异。
答案 0 :(得分:14)
答案 1 :(得分:13)
第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
在测试的默认配置中。 =&GT;配置想
-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -rminitest/pride
答案 2 :(得分:3)
见https://github.com/tenderlove/purdytest/issues/1。它似乎是1.9.2附带的最小版本的已知错误。对于其他人,添加
gem "minitest"
在你文件的最顶端做了诀窍。
答案 3 :(得分:3)
在require&#39; rails / test_help&#39;
之后,只需将这些行添加到test_helper.rb文件中require "minitest/reporters"
Minitest::Reporters.use!
在你的gemfile中添加
gem 'minitest-reporters', '~> 1.0.7'
这将使您的佣金测试成为红色和绿色,但它也会带来回溯。要摆脱所有这些额外的回溯日志,请将此添加到您的gemfile然后捆绑:
gem 'mini_backtrace'
然后在config / initializers / backtrace_silencers.rb中添加此行以删除所有额外的rvm内容
Rails.backtrace_cleaner.add_silencer { |line| line =~ /rvm/ }
希望对你有用,如果你需要更多细节,请告诉我。
答案 4 :(得分:1)
我目前使用purdytest
和1.9.2
答案 5 :(得分:0)
试着看看这篇关于使用turn gem为minitest提供漂亮外观和可配置输出的帖子。 http://rawonrails.blogspot.com/2012/01/better-minitest-output-with-turn-gem.html
答案 6 :(得分:-1)
$ gem install mynyml-redgreen --source http://gemcutter.org
# in your test file
require 'redgreen'
顺便说一下, redgreen并且很好地相互配合工作