- From: Rudi <
>
- To:
- Subject: [chef] How to test a bash code snippet
- Date: Mon, 8 Jul 2013 22:56:11 +0800
Hi,
I'm using chefspec with chef 11 and have this working piece of code but
don't know how to test it.
I hope this is the correct place to ask for any suggestions on this?
I also have a crude file exists check so that bundle doesn't run every chef_run.
bash "install with bundler" do
user "vagrant"
cwd "/vagrant"
flags "--login"
code <<-EOH
rvm use ruby-1.9.2-p290
bundle --verbose
EOH
# xpath is the last in the list of 125 required gems for this application (gem list --local)
# If this gem is here we assume bundle has already run successfully.
not_if { ::File.exists?('/home/vagrant/.rvm/gems/ruby-1.9.2-p290/gems/xpath-0.1.4') }
end
Prior to this code I was testing the execute command with this:
describe 'main::install_bundle' do
let (:chef_run) { ChefSpec::ChefRunner.new.converge 'main::install_bundle' }
it "installs with bundler" do
expect(chef_run).to execute_command("cd /vagrant && rvm use ruby-1.9.2-p290 && bundle --verbose")
end
end
But I need the "--login" flag so that rvm can select ruby 1.9.2 so I changed to the bash resource.
FYI ..chef is running with ruby 1.9.3 but the Rails app uses 1.9.2 on the /vagrant box (it's some old coder I need to maintain).
Thanks!
- [chef] How to test a bash code snippet, Rudi, 07/08/2013
Archive powered by MHonArc 2.6.16.