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

问题描述 投票:0回答:8

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

ruby testunit minitest
8个回答
14
投票

旋转旋转一下。

将其添加到您的 Gemfile 中:

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

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

在测试的默认配置中。 => 配置想要

-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -rminitest/pride
    

4
投票
只需在 require 'rails/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/ }

希望对您有用,如果您需要更多详细信息,请告诉我。


3
投票
参见

https://github.com/tenderlove/purdytest/issues/1。这似乎是 1.9.2 附带的 minitest 版本的一个已知错误。对于其他人,添加

gem "minitest"

在文件的最顶部就成功了。


1
投票
我目前使用

purdytest

 和 1.9.2


0
投票
尝试查看这篇关于使用turn gem 为 minitest 提供美观且可配置输出的文章。

http://rawonrails.blogspot.com/2012/01/better-minitest-output-with-turn-gem.html


0
投票
截至 2023 年末,已接受的答案不再有效。然而,以下内容确实如此。

require "minitest" Minitest.load_plugins require "minitest/pride"
将上述代码包含在例如

test/test_helper.rb

,或者在任何地方放置所有测试通用的代码。这将为您提供与此类似的测试运行:


-1
投票
$ gem install mynyml-redgreen --source http://gemcutter.org # in your test file require 'redgreen'

redgreen 和turn 可以很好地配合使用,顺便说一句

© www.soinside.com 2019 - 2024. All rights reserved.