From 75a2f00c9790f2fd7cebb4337cab1404e9e03eae Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sat, 3 Oct 2009 21:33:06 -0500 Subject: [PATCH] Move improved isolated test runner to AP --- actionpack/Rakefile | 11 +++++------ actionpack/test/ts_isolated.rb | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 actionpack/test/ts_isolated.rb diff --git a/actionpack/Rakefile b/actionpack/Rakefile index 547e74b5a1..e186037aeb 100644 --- a/actionpack/Rakefile +++ b/actionpack/Rakefile @@ -34,22 +34,21 @@ end desc "Run all unit tests" task :test => [:test_action_pack, :test_active_record_integration] -TESTS_GLOB = "test/{abstract,controller,dispatch,template}/**/*_test.rb" - Rake::TestTask.new(:test_action_pack) do |t| t.libs << 'test' # make sure we include the tests in alphabetical order as on some systems # this will not happen automatically and the tests (as a whole) will error - t.test_files = Dir.glob(TESTS_GLOB).sort + t.test_files = Dir.glob('test/{abstract,controller,dispatch,template}/**/*_test.rb').sort t.verbose = true # t.warning = true end -task :isolated_test do - ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME')) - Dir.glob(TESTS_GLOB).all? { |file| system(ruby, '-Ilib:test', file) } or raise "Failures" +namespace :test do + Rake::TestTask.new(:isolated) do |t| + t.pattern = 'test/ts_isolated.rb' + end end desc 'ActiveRecord Integration Tests' diff --git a/actionpack/test/ts_isolated.rb b/actionpack/test/ts_isolated.rb new file mode 100644 index 0000000000..4a321c631f --- /dev/null +++ b/actionpack/test/ts_isolated.rb @@ -0,0 +1,16 @@ +require 'test/unit' +require 'rbconfig' +require 'rubygems' +require 'active_support' + +class TestIsolated < Test::Unit::TestCase + ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME')) + + Dir["#{File.dirname(__FILE__)}/{abstract,controller,dispatch,template}/**/*_test.rb"].each do |file| + define_method("test #{file}") do + command = "#{ruby} -Ilib:test #{file}" + silence_stderr { `#{command}` } + assert_equal 0, $?.to_i, command + end + end +end