aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2009-10-03 21:33:06 -0500
committerJoshua Peek <josh@joshpeek.com>2009-10-03 21:33:06 -0500
commit75a2f00c9790f2fd7cebb4337cab1404e9e03eae (patch)
treee5037ab79420c416a204d9f22055376b4847dcde
parent018b79dd36d054d87fdc408d38dc9ac7f1b1500d (diff)
downloadrails-75a2f00c9790f2fd7cebb4337cab1404e9e03eae.tar.gz
rails-75a2f00c9790f2fd7cebb4337cab1404e9e03eae.tar.bz2
rails-75a2f00c9790f2fd7cebb4337cab1404e9e03eae.zip
Move improved isolated test runner to AP
-rw-r--r--actionpack/Rakefile11
-rw-r--r--actionpack/test/ts_isolated.rb16
2 files changed, 21 insertions, 6 deletions
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