There are words for how much I hate RSpec (especially RSpec-Puppet), but they would be too harsh to write down.
So now that I don’t have to google the same shit over and over again, here’s what you have to do to get basic puppet module testing up and running (replace $MODULE with your module name, of course):
$MODULE/Rakefile
require 'rubygems' require 'puppetlabs_spec_helper/rake_tasks'
$MODULE/.fixtures.yml
fixtures: repositories: concat: git://github.com/puppetlabs/puppetlabs-concat.git # alternate method, for specifying refs stdlib: repo: git://github.com/puppetlabs/puppetlabs-stdlib.git ref: 1.0.0 symlinks: # do _not_ forget this $MODULE: "#{source_dir}"
$MODULE/spec/spec_helper.rb
require 'rubygems' require 'puppetlabs_spec_helper/module_spec_helper'
$MODULE/spec/classes/$MODULE_spec.rb
# see also http://rspec-puppet.com/ require 'spec_helper' describe '$MODULE' do context 'default' do it { should contain_file('/etc/haproxy/haproxy.conf') } # or ... it do is_expected.to contain_file('/this/syntax/is/even/more/retarded') end end end
Final note
It’s “rake spec”, not “rake test”. Of course.