aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/test_unit/sub_test_task.rb
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2011-12-21 12:43:41 -0700
committerJeremy Kemper <jeremy@bitsweat.net>2011-12-21 12:44:14 -0700
commit5a4b41443c09c1d1f5c996afe0838391b2e2c5f2 (patch)
tree8a295bc4ad625916d2467a6428bf7f3b9bdcb0f7 /railties/lib/rails/test_unit/sub_test_task.rb
parenta29c681dce81d67d0a3307ec91848cb705d20253 (diff)
downloadrails-5a4b41443c09c1d1f5c996afe0838391b2e2c5f2.tar.gz
rails-5a4b41443c09c1d1f5c996afe0838391b2e2c5f2.tar.bz2
rails-5a4b41443c09c1d1f5c996afe0838391b2e2c5f2.zip
Move SubTestTask. Soften up tests.
Diffstat (limited to 'railties/lib/rails/test_unit/sub_test_task.rb')
-rw-r--r--railties/lib/rails/test_unit/sub_test_task.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/railties/lib/rails/test_unit/sub_test_task.rb b/railties/lib/rails/test_unit/sub_test_task.rb
new file mode 100644
index 0000000000..284c70050f
--- /dev/null
+++ b/railties/lib/rails/test_unit/sub_test_task.rb
@@ -0,0 +1,36 @@
+module Rails
+ # Don't abort when tests fail; move on the next test task.
+ # Silence the default description to cut down on `rake -T` noise.
+ class SubTestTask < Rake::TestTask
+ # Create the tasks defined by this task lib.
+ def define
+ lib_path = @libs.join(File::PATH_SEPARATOR)
+ task @name do
+ run_code = ''
+ RakeFileUtils.verbose(@verbose) do
+ run_code =
+ case @loader
+ when :direct
+ "-e 'ARGV.each{|f| load f}'"
+ when :testrb
+ "-S testrb #{fix}"
+ when :rake
+ rake_loader
+ end
+ @ruby_opts.unshift( "-I\"#{lib_path}\"" )
+ @ruby_opts.unshift( "-w" ) if @warning
+
+ begin
+ ruby @ruby_opts.join(" ") +
+ " \"#{run_code}\" " +
+ file_list.collect { |fn| "\"#{fn}\"" }.join(' ') +
+ " #{option_list}"
+ rescue => error
+ warn "Error running #{name}: #{error.inspect}"
+ end
+ end
+ end
+ self
+ end
+ end
+end