neillturner / kitchen-verifier-serverspec

A Test Kitchen Serverspec Verifer without having to transit the Busser layer
Other
39 stars 19 forks source link

kitchen verify fails when using more than one pattern #3

Closed milky-milk closed 8 years ago

milky-milk commented 8 years ago

Hello!

When I'm trying to define more than one pattern for serverspec, kitchen fails: for expample:

suites:
  - name: Common
    provisioner:
      name: ansible_playbook
      playbook: test/integration/default.yml
    verifier:
      patterns:
      - roles/common/spec/common_spec.rb
      - roles/nginx/spec/nginx_spec.rb

fail message:

       Installing ruby, bundler and serverspec remotely on server
       Running Serverspec
       invalid option: -E

       Please use --help for a listing of valid options
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: Failed to complete #verify action: [SSH exited (1) for command: [            source $HOME/.rvm/scripts/rvm
            if [ -d /tmp/kitchen ]; then
              cd /tmp/kitchen
               sudo -E rspec -c -f documentation --default-path  /tmp/kitchen  -P roles/common/spec/common_spec.rb\n sudo -E rspec -c -f documentation --default-path  /tmp/kitchen  -P roles/nginx/spec/nginx_spec.rb

            else
              echo "ERROR: Default path '/tmp/kitchen' does not exist"
              exit 1
            fi
]]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

It seems, the error causes #{s}" }.join('\n').

      def rspec_commands
        info('Running Serverspec')
        if config[:require_runner]
          "#{env_vars} #{sudo_env(rspec_cmd)} #{color} -f #{config[:format]} --default-path  #{config[:default_path]} #{rspec_path_option} #{config[:extra_flags]}"
        else
          config[:patterns].map { |s| "#{env_vars} #{sudo_env(rspec_cmd)} #{color} -f #{config[:format]} --default-path  #{config[:default_path]} #{config[:extra_flags]} -P #{s}" }.join('\n')
        end
      end

Maybe it should be more correct to use #{s}" }.join(';') to separate commands?

neillturner commented 8 years ago

when you change to #{s}" }.join(';') does it work ok? if so submit a pull request or else let me know and i will change it and release.

milky-milk commented 8 years ago

Yep.

milky-milk commented 8 years ago

Closing https://github.com/neillturner/kitchen-verifier-serverspec/pull/4