aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2015-01-29 15:03:08 +0100
committerYves Senn <yves.senn@gmail.com>2015-03-18 09:52:18 +0100
commit090c83672f333d6a4d87752ca1f980bfb6be6849 (patch)
tree08824ed6b23002a0b276872ac688ac4c94d8af95
parentf4ea8dda1b150d8abc2f41a214e15ae81ed5f9b5 (diff)
downloadrails-090c83672f333d6a4d87752ca1f980bfb6be6849.tar.gz
rails-090c83672f333d6a4d87752ca1f980bfb6be6849.tar.bz2
rails-090c83672f333d6a4d87752ca1f980bfb6be6849.zip
`-e` / `--environment` for the test runner.
-rw-r--r--railties/lib/rails/commands/test.rb2
-rw-r--r--railties/lib/rails/test_unit/runner.rb8
-rw-r--r--railties/test/test_unit/runner_test.rb14
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