diff options
author | Yves Senn <yves.senn@gmail.com> | 2015-01-29 15:03:08 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2015-03-18 09:52:18 +0100 |
commit | 090c83672f333d6a4d87752ca1f980bfb6be6849 (patch) | |
tree | 08824ed6b23002a0b276872ac688ac4c94d8af95 | |
parent | f4ea8dda1b150d8abc2f41a214e15ae81ed5f9b5 (diff) | |
download | rails-090c83672f333d6a4d87752ca1f980bfb6be6849.tar.gz rails-090c83672f333d6a4d87752ca1f980bfb6be6849.tar.bz2 rails-090c83672f333d6a4d87752ca1f980bfb6be6849.zip |
`-e` / `--environment` for the test runner.
-rw-r--r-- | railties/lib/rails/commands/test.rb | 2 | ||||
-rw-r--r-- | railties/lib/rails/test_unit/runner.rb | 8 | ||||
-rw-r--r-- | railties/test/test_unit/runner_test.rb | 14 |
3 files changed, 22 insertions, 2 deletions
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) diff --git a/railties/lib/rails/test_unit/runner.rb b/railties/lib/rails/test_unit/runner.rb index c5bf97bfc9..baf33b4468 100644 --- a/railties/lib/rails/test_unit/runner.rb +++ b/railties/lib/rails/test_unit/runner.rb @@ -7,12 +7,17 @@ module Rails class TestRunner class Options def self.parse(args) - options = { backtrace: false, name: nil } + options = { backtrace: false, name: nil, environment: "test" } opt_parser = ::OptionParser.new do |opts| opts.banner = "Usage: bin/rails test [options] [file or directory]" opts.separator "" + opts.on("-e", "--environment [ENV]", + "run tests in the ENV environment") do |env| + options[:environment] = env.strip + end + opts.separator "" opts.separator "Filter options:" opts.separator "" opts.separator <<-DESC @@ -70,6 +75,7 @@ module Rails def run $rails_test_runner = self + ENV["RAILS_ENV"] = @options[:environment] run_tests end diff --git a/railties/test/test_unit/runner_test.rb b/railties/test/test_unit/runner_test.rb index be226e3aa5..cd0c66a5f7 100644 --- a/railties/test/test_unit/runner_test.rb +++ b/railties/test/test_unit/runner_test.rb @@ -19,6 +19,16 @@ class TestUnitTestRunnerTest < ActiveSupport::TestCase assert options[:backtrace] end + test "tests run in the test environment by default" do + options = @options.parse([]) + assert_equal "test", options[:environment] + end + + test "can run in a specific environment" do + options = @options.parse(["-e development"]) + assert_equal "development", options[:environment] + end + test "parse the filename and line" do options = @options.parse(["foobar.rb:20"]) assert_equal File.expand_path("foobar.rb"), options[:filename] @@ -52,4 +62,8 @@ class TestUnitTestRunnerTest < ActiveSupport::TestCase assert_nil options[:filename] assert_nil options[:line] end + + test "run multiple files" do + skip "needs implementation" + end end |