From c5532e06d9ef8b75f7443019aa1f34a3b697efdc Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Tue, 30 Dec 2014 10:17:30 +0100 Subject: spike of a `OptionParser` backed test runner. --- railties/lib/rails/commands/commands_tasks.rb | 7 ++++++- railties/lib/rails/commands/test.rb | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 railties/lib/rails/commands/test.rb (limited to 'railties/lib/rails/commands') diff --git a/railties/lib/rails/commands/commands_tasks.rb b/railties/lib/rails/commands/commands_tasks.rb index 8bae08e44e..d8d4080c3e 100644 --- a/railties/lib/rails/commands/commands_tasks.rb +++ b/railties/lib/rails/commands/commands_tasks.rb @@ -14,6 +14,7 @@ The most common rails commands are: generate Generate new code (short-cut alias: "g") console Start the Rails console (short-cut alias: "c") server Start the Rails server (short-cut alias: "s") + test Run tests (short-cut alias: "t") dbconsole Start a console for the database specified in config/database.yml (short-cut alias: "db") new Create a new Rails application. "rails new my_app" creates a @@ -27,7 +28,7 @@ In addition to those, there are: All commands can be run with -h (or --help) for more information. EOT - COMMAND_WHITELIST = %w(plugin generate destroy console server dbconsole runner new version help) + COMMAND_WHITELIST = %w(plugin generate destroy console server dbconsole runner new version help test) def initialize(argv) @argv = argv @@ -81,6 +82,10 @@ EOT end end + def test + require_command!("test") + end + def dbconsole require_command!("dbconsole") Rails::DBConsole.start diff --git a/railties/lib/rails/commands/test.rb b/railties/lib/rails/commands/test.rb new file mode 100644 index 0000000000..f75b07cf73 --- /dev/null +++ b/railties/lib/rails/commands/test.rb @@ -0,0 +1,9 @@ +ENV["RAILS_ENV"] = "test" + +require "rails/test_unit/runner" +options = Rails::TestRunner::Options.parse(ARGV) + +$: << File.expand_path("../../test", APP_PATH) + +# Config Rails backtrace in tests. +Rails::TestRunner.new(options).run -- cgit v1.2.3 From ff0a7611cf912ce7ae32966cc42da5dbdff3a0bc Mon Sep 17 00:00:00 2001 From: Arthur Neves Date: Fri, 23 Jan 2015 16:05:31 -0500 Subject: Add test run by line, and report error by line --- railties/lib/rails/commands/test.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'railties/lib/rails/commands') diff --git a/railties/lib/rails/commands/test.rb b/railties/lib/rails/commands/test.rb index f75b07cf73..5c997336a0 100644 --- a/railties/lib/rails/commands/test.rb +++ b/railties/lib/rails/commands/test.rb @@ -1,9 +1,19 @@ ENV["RAILS_ENV"] = "test" - require "rails/test_unit/runner" -options = Rails::TestRunner::Options.parse(ARGV) +require "rails/test_unit/reporter" +options = Rails::TestRunner::Options.parse(ARGV) $: << File.expand_path("../../test", APP_PATH) +$runner = Rails::TestRunner.new(options) + +def Minitest.plugin_rails_init(options) + self.reporter << Rails::TestUnitReporter.new(options[:io], options) + if method = $runner.find_method + options[:filter] = "/^(#{method})$/" + end +end +Minitest.extensions << 'rails' + # Config Rails backtrace in tests. -Rails::TestRunner.new(options).run +$runner.run -- cgit v1.2.3 From cf7ba1fbbd9801b4514b12b2be1242b15c27b550 Mon Sep 17 00:00:00 2001 From: Arthur Neves Date: Fri, 23 Jan 2015 16:25:38 -0500 Subject: no need to escape the method in a regex wrap, minitest does that for us --- railties/lib/rails/commands/test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/commands') diff --git a/railties/lib/rails/commands/test.rb b/railties/lib/rails/commands/test.rb index 5c997336a0..cd1192eb6e 100644 --- a/railties/lib/rails/commands/test.rb +++ b/railties/lib/rails/commands/test.rb @@ -10,7 +10,7 @@ $runner = Rails::TestRunner.new(options) def Minitest.plugin_rails_init(options) self.reporter << Rails::TestUnitReporter.new(options[:io], options) if method = $runner.find_method - options[:filter] = "/^(#{method})$/" + options[:filter] = method end end Minitest.extensions << 'rails' -- cgit v1.2.3 From 739cfd5d90aff0d8eba3d3937df63afaa6ad106f Mon Sep 17 00:00:00 2001 From: Arthur Neves Date: Fri, 23 Jan 2015 20:58:48 -0500 Subject: Move some logic to runner --- railties/lib/rails/commands/test.rb | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) (limited to 'railties/lib/rails/commands') diff --git a/railties/lib/rails/commands/test.rb b/railties/lib/rails/commands/test.rb index cd1192eb6e..1efd010dc7 100644 --- a/railties/lib/rails/commands/test.rb +++ b/railties/lib/rails/commands/test.rb @@ -1,19 +1,7 @@ ENV["RAILS_ENV"] = "test" require "rails/test_unit/runner" -require "rails/test_unit/reporter" options = Rails::TestRunner::Options.parse(ARGV) $: << File.expand_path("../../test", APP_PATH) -$runner = Rails::TestRunner.new(options) - -def Minitest.plugin_rails_init(options) - self.reporter << Rails::TestUnitReporter.new(options[:io], options) - if method = $runner.find_method - options[:filter] = method - end -end -Minitest.extensions << 'rails' - -# Config Rails backtrace in tests. -$runner.run +Rails::TestRunner.new(options).run -- cgit v1.2.3 From f4ea8dda1b150d8abc2f41a214e15ae81ed5f9b5 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Thu, 29 Jan 2015 11:34:10 +0100 Subject: move argument parsing into the `Runner`. --- railties/lib/rails/commands/test.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'railties/lib/rails/commands') diff --git a/railties/lib/rails/commands/test.rb b/railties/lib/rails/commands/test.rb index 1efd010dc7..ada21e7d3f 100644 --- a/railties/lib/rails/commands/test.rb +++ b/railties/lib/rails/commands/test.rb @@ -1,7 +1,5 @@ ENV["RAILS_ENV"] = "test" require "rails/test_unit/runner" -options = Rails::TestRunner::Options.parse(ARGV) $: << File.expand_path("../../test", APP_PATH) - -Rails::TestRunner.new(options).run +Rails::TestRunner.run(ARGV) -- cgit v1.2.3 From 090c83672f333d6a4d87752ca1f980bfb6be6849 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Thu, 29 Jan 2015 15:03:08 +0100 Subject: `-e` / `--environment` for the test runner. --- railties/lib/rails/commands/test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/commands') diff --git a/railties/lib/rails/commands/test.rb b/railties/lib/rails/commands/test.rb index ada21e7d3f..598e224a6f 100644 --- a/railties/lib/rails/commands/test.rb +++ b/railties/lib/rails/commands/test.rb @@ -1,5 +1,5 @@ -ENV["RAILS_ENV"] = "test" require "rails/test_unit/runner" $: << File.expand_path("../../test", APP_PATH) + Rails::TestRunner.run(ARGV) -- cgit v1.2.3