如何使用lib minitest或Test:Unit对单元测试进行着色?

时间:2011-07-07 11:28:06

标签: ruby testunit minitest

我想在我的开发环境中让单元测试输出颜色。但是,我无法在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知识还不足以看到差异。

7 个答案:

答案 0 :(得分:14)

turn一个旋转。

将此添加到您的Gemfile:

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

答案 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并且很好地相互配合工作

相关问题