Autotest.add_hook :initialize do |at| at.clear_mappings # watch out: Ruby bug (1.8.6): # %r(/) != /\// at.add_mapping(%r%^spec/.*\.rb$%) { |filename, _| filename } at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m| ["spec/#{m[1]}_spec.rb"] } at.add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) { at.files_matching %r{^spec/.*_spec\.rb$} } # the libraries under lib/puppet at.add_mapping(%r%^lib/(.*)\.rb$%) { |filename, m| at.files_matching %r!spec/(unit|integration)/#{m[1]}.rb! } # the actual spec files themselves at.add_mapping(%r%^spec/(unit|integration)/.*\.rb$%) { |filename, _| filename } # force a complete re-run for all of these: # main puppet lib at.add_mapping(%r!^lib/puppet\.rb$!) { |filename, _| at.files_matching %r!spec/(unit|integration)/.*\.rb! } # the spec_helper at.add_mapping(%r!^spec/spec_helper\.rb$!) { |filename, _| at.files_matching %r!spec/(unit|integration)/.*\.rb! } # the puppet test libraries at.add_mapping(%r!^test/lib/puppettest/.*!) { |filename, _| at.files_matching %r!spec/(unit|integration)/.*\.rb! } # the puppet spec libraries at.add_mapping(%r!^spec/lib/spec.*!) { |filename, _| at.files_matching %r!spec/(unit|integration)/.*\.rb! } # the monkey patches for rspec at.add_mapping(%r!^spec/lib/monkey_patches/.*!) { |filename, _| at.files_matching %r!spec/(unit|integration)/.*\.rb! } end