直到最近,Puppetlabs_spec_helper 实际上按照您希望的方式运行,即除非所有测试都通过,否则不会清理fixtures 目录。
我注意到这里的这个补丁改变了这种行为。对于它的价值,我也不同意这种改变。
无论如何,如果你想要旧的行为,你可以:
使用 Puppetlabs_spec_helper 的早期版本。
定义自定义规范任务。
或者只是运行bundle exec rake spec_prep spec_standalone
。
或者,如果您只想在一个文件中运行测试,请运行bundle exec rake spec_prep; bundle exec rspec spec/somefile_spec.rb --fail-fast
. (该--fail-fast
选项在调试失败的测试时很有用,它会导致 rspec 在第一次失败时中止。)
要使用旧行为定义自定义规范任务,请将其添加到您的 Rakefile:
desc "Run spec tests and clean the fixtures directory if successful"
task :custom_spec do
Rake::Task[:spec_prep].invoke
Rake::Task[:spec_standalone].invoke
Rake::Task[:spec_clean].invoke
end
相反,如果您希望它永远不会清理 fixtures 目录:
desc "Run tests but don't clean up spec dir"
task :custom_spec do
Rake::Task[:spec_prep].invoke
Rake::Task[:spec_standalone].invoke
end
无论哪种情况,您都可以使用以下命令运行测试:
$ bundle exec rake custom_spec