Test::Unit Special Notes
Test::Unit comes bundled with Ruby 1.8.x, and in general requires no additional tuning. If you are working in RubyMine with Rails 3.x, or with Rails 2.3.x and without the test-unit
gem, you can use this framework "out-of-the-box".
However, there are certain situations when RubyMine will be unable to plug the test runner UI to the test engine:
Ruby 1.9.x with a limited version of Test::Unit
Use the complete version, which is distributed by means of the test-unit
gem. If this gem is missing, the test results will be shown in the console, and the test runner UI will only show the error message "No tests were found".
If you want the test runner UI show the tree view of test results, include test-unit
gem in your Gemfile.
Rails 2.3.x and test-unit gem
The problem affects all Test::Unit-based testing frameworks. To fix this problem, you have to manually enable the Test::Unit custom reporter, as described below.
To enable Test::Unit custom reporter for your test
- Open for editing the
config/environment.rb
file, and disabletest-unit
gem autoload. To do that, modify theenvironment.rb
as follows:Rails::Initializer.run do |config| ... config.gem 'test-unit', :lib => false ... end
- Open for editing the
test_helper.rb
file, and enable the RubyMine formatter manually. To do that, modify the source code as shown below.It is important to enable it after
environment.rb
has been required, but before therequire 'test/unit'
call.# test/test_helper.rb ENV["RAILS_ENV"] = "test" require File.expand_path(File.dirname(__FILE__) + "/../config/environment") # RubyMine if ENV["RUBYMINE_TESTUNIT_REPORTER"] $:.unshift(ENV["RUBYMINE_TESTUNIT_REPORTER"]) $:.uniq! end require 'test_help' # !!! test_helper script loads 'test/unit' ...