diff --git a/lib/kitchen/driver/vagrant.rb b/lib/kitchen/driver/vagrant.rb index 297bef9e..69c13489 100644 --- a/lib/kitchen/driver/vagrant.rb +++ b/lib/kitchen/driver/vagrant.rb @@ -469,10 +469,13 @@ def local_kitchen_cache # instance's Vagrantfile # @api private def vagrant_root - root = File.join(config[:kitchen_root], %w{.kitchen kitchen-vagrant}, - "kitchen-#{File.basename(config[:kitchen_root])}-#{instance.name}" - ) - @vagrant_root ||= instance.nil? ? nil : root + if !@vagrant_root && !instance.nil? + @vagrant_root = File.join( + config[:kitchen_root], %w{.kitchen kitchen-vagrant}, + "kitchen-#{File.basename(config[:kitchen_root])}-#{instance.name}" + ) + end + @vagrant_root end # @param type [Symbol] either `:ssh` or `:winrm` diff --git a/spec/kitchen/driver/vagrant_spec.rb b/spec/kitchen/driver/vagrant_spec.rb index 46699842..44f8cd43 100644 --- a/spec/kitchen/driver/vagrant_spec.rb +++ b/spec/kitchen/driver/vagrant_spec.rb @@ -48,6 +48,10 @@ d end + let(:driver_with_no_instance) do + driver_object + end + let(:instance) do Kitchen::Instance.new( :verifier => verifier, @@ -540,6 +544,12 @@ def run_command(_cmd, options = {}) driver.verify_dependencies end + it "passes for supported versions of Vagrant when it has no instances" do + with_modern_vagrant + + driver_with_no_instance.verify_dependencies + end + it "raises a UserError for unsupported versions of Vagrant" do with_unsupported_vagrant