diff --git a/lib/spring/commands/rails.rb b/lib/spring/commands/rails.rb index e343ee51..f62fe6bc 100644 --- a/lib/spring/commands/rails.rb +++ b/lib/spring/commands/rails.rb @@ -84,6 +84,20 @@ def extract_environment(args) end class RailsTest < Rails + def env(args) + environment = "test" + + args.each.with_index do |arg, i| + if arg =~ /--environment=(\w+)/ + environment = $1 + elsif i > 0 && args[i - 1] == "-e" + environment = arg + end + end + + environment + end + def command_name "test" end diff --git a/test/unit/commands_test.rb b/test/unit/commands_test.rb index c0e67750..c519b699 100644 --- a/test/unit/commands_test.rb +++ b/test/unit/commands_test.rb @@ -56,4 +56,19 @@ class CommandsTest < ActiveSupport::TestCase assert_equal "test", command.env(["test:models"]) assert_nil command.env(["test_foo"]) end + + test 'RailsTest#command defaults to test rails environment' do + command = Spring::Commands::RailsTest.new + assert_equal 'test', command.env([]) + end + + test 'RailsTest#command sets rails environment from --environment option' do + command = Spring::Commands::RailsTest.new + assert_equal 'foo', command.env(['--environment=foo']) + end + + test 'RailsTest#command sets rails environment from -e option' do + command = Spring::Commands::RailsTest.new + assert_equal 'foo', command.env(['-e', 'foo']) + end end