pos*_*eid 14 ruby testunit minitest
我希望在我的开发环境中有单元测试输出颜色.但是,我无法在Linux(Debian和Ubuntu)上运行它.当我包含以下库时:
require 'minitest/autorun'
require 'minitest/unit'
require 'minitest/pride'
Run Code Online (Sandbox Code Playgroud)
我明白了:
/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)
Run Code Online (Sandbox Code Playgroud)
由代码引起:
MiniTest::Unit.output = PrideIO.new(MiniTest::Unit.output)
Run Code Online (Sandbox Code Playgroud)
我见过一个有效的Rspec变种.不幸的是,我的Ruby知识还不足以看出差异.
Col*_*ean 14
给变成一个旋转.
将其添加到您的Gemfile:
group :test do
gem 'turn', :require => false
end
Run Code Online (Sandbox Code Playgroud)
小智 13
第1步:使用最新版本的gem(我认为它将在Ruby 1.9.3中修复)
gem install minitest
Run Code Online (Sandbox Code Playgroud)
第2步:在命令行中输入"minitest/pride",而不是在代码中
ruby -rminitest/pride your_ruby_script.rb
Run Code Online (Sandbox Code Playgroud)
..并且在你的代码中只需要'minitest/autorun'
require 'minitest/autorun'
Run Code Online (Sandbox Code Playgroud)
如果你使用Rubymine,只需添加
-rminitest
Run Code Online (Sandbox Code Playgroud)
在测试的默认配置中.=>配置想
-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -rminitest/pride
Run Code Online (Sandbox Code Playgroud)
小智 1
截至 2023 年底,已接受的答案不再有效。然而,以下内容确实如此。
require "minitest"
Minitest.load_plugins
require "minitest/pride"
Run Code Online (Sandbox Code Playgroud)
将上述代码包含在 例如 中test/test_helper.rb
,或者放置所有测试通用代码的任何位置。这将为您提供与此类似的测试运行: