From 0e006373e000c2763876b3084175e95ee0e36be3 Mon Sep 17 00:00:00 2001 From: Ryan Davis Date: Mon, 4 Feb 2013 14:50:04 -0800 Subject: [PATCH] Added test:all and test:all:db tasks to speed up full test runs. Speed up depends on the number of test phases (N) you have for your app, but it is roughly a 1/N improvement. In my app, it goes from 15.51s to 5.56s. Inspired by http://ngauthier.com/2012/02/quick-tests-with-bash.html Reviewed by @tenderlove --- railties/lib/rails/test_unit/testing.rake | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/railties/lib/rails/test_unit/testing.rake b/railties/lib/rails/test_unit/testing.rake index f0d46fd959..44485d9b14 100644 --- a/railties/lib/rails/test_unit/testing.rake +++ b/railties/lib/rails/test_unit/testing.rake @@ -71,6 +71,18 @@ namespace :test do end end + # Inspired by: http://ngauthier.com/2012/02/quick-tests-with-bash.html + desc "Run tests quickly by merging all types and not resetting db" + Rake::TestTask.new(:all) do |t| + t.libs << "test" + t.pattern = "test/**/*_test.rb" + end + + namespace :all do + desc "Run tests quickly, but also reset db" + task :db => %w[db:test:prepare test:all] + end + Rake::TestTask.new(recent: "test:prepare") do |t| since = TEST_CHANGES_SINCE touched = FileList['test/**/*_test.rb'].select { |path| File.mtime(path) > since } + -- GitLab