diff --git a/lib/appraisal/command.rb b/lib/appraisal/command.rb index c7c63d75..6de50162 100644 --- a/lib/appraisal/command.rb +++ b/lib/appraisal/command.rb @@ -12,13 +12,15 @@ def initialize(command, options = {}) end def run + run_env = test_environment.merge(env) + Bundler.with_original_env do ensure_bundler_is_available announce ENV["BUNDLE_GEMFILE"] = gemfile ENV["APPRAISAL_INITIALIZED"] = "1" - env.each_pair do |key, value| + run_env.each_pair do |key, value| ENV[key] = value end @@ -79,5 +81,14 @@ def command_as_string command end end + + def test_environment + return {} unless ENV["APPRAISAL_UNDER_TEST"] == "1" + + { + "GEM_HOME" => ENV["GEM_HOME"], + "GEM_PATH" => "", + } + end end end diff --git a/spec/acceptance/bundle_without_spec.rb b/spec/acceptance/bundle_without_spec.rb index c57c84f4..710c2a63 100644 --- a/spec/acceptance/bundle_without_spec.rb +++ b/spec/acceptance/bundle_without_spec.rb @@ -39,7 +39,9 @@ output = run "appraisal install --without drinks" expect(output).to include("Bundle complete") - expect(output).to include("Gems in the group drinks were not installed.") + expect(output).to( + match(/Gems in the group ['"]?drinks['"]? were not installed/) + ) expect(output).not_to include("orange_juice") expect(output).not_to include("coffee") expect(output).not_to include("soda") diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 68deffc9..d3328e05 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,6 +5,7 @@ PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..')).freeze TMP_GEM_ROOT = File.join(PROJECT_ROOT, "tmp", "gems") +ENV["APPRAISAL_UNDER_TEST"] = "1" RSpec.configure do |config| config.raise_errors_for_deprecations!