我希望在我的开发环境中让单元测试输出颜色。但是,我无法使其在 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 变体。不幸的是,我的 Ruby 知识还不足以看出差异。
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
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/ }
希望对您有用,如果您需要更多详细信息,请告诉我。
https://github.com/tenderlove/purdytest/issues/1。这似乎是 1.9.2 附带的 minitest 版本的一个已知错误。对于其他人,添加
gem "minitest"
在文件的最顶部就成功了。
purdytest
和 1.9.2
$ gem install mynyml-redgreen --source http://gemcutter.org
# in your test file
require 'redgreen'
redgreen 和turn 可以很好地配合使用,顺便说一句