在 rspec-puppet 测试完成后不要删除 public puppet 模块
Don't delete public puppet modules after rspec-puppet tests are done
在.fixtures.yml
中,有从public库下载的模块,例如下例中的stdlib和concat:
fixtures:
forge_modules:
stdlib: puppetlabs/stdlib
concat: puppetlabs/concat
每当 运行 进行 rspec-puppet 测试时,都需要下载这些模块。它们也会在测试完成后被删除。
如果所有测试都运行完全就好了。但是如果有失败的测试需要单独运行,这些模块是不可用的。我必须 运行 所有测试(100+)在一起,因此 public 模块可以下载并可用。调试小错误的时候很烦人
有没有办法配置 rspec-puppet,这样它就不会每次都 download/delete 那些 public 模块?
直到最近,Puppetlabs_spec_helper 的行为确实如您所愿,即除非所有测试都通过,否则不会清理 fixtures 目录。
我注意到这个补丁 here 改变了那个行为。对于它的价值,我也不同意这种变化。
无论如何,如果您想要旧的行为,您可以:
使用早期版本的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
在.fixtures.yml
中,有从public库下载的模块,例如下例中的stdlib和concat:
fixtures:
forge_modules:
stdlib: puppetlabs/stdlib
concat: puppetlabs/concat
每当 运行 进行 rspec-puppet 测试时,都需要下载这些模块。它们也会在测试完成后被删除。
如果所有测试都运行完全就好了。但是如果有失败的测试需要单独运行,这些模块是不可用的。我必须 运行 所有测试(100+)在一起,因此 public 模块可以下载并可用。调试小错误的时候很烦人
有没有办法配置 rspec-puppet,这样它就不会每次都 download/delete 那些 public 模块?
直到最近,Puppetlabs_spec_helper 的行为确实如您所愿,即除非所有测试都通过,否则不会清理 fixtures 目录。
我注意到这个补丁 here 改变了那个行为。对于它的价值,我也不同意这种变化。
无论如何,如果您想要旧的行为,您可以:
使用早期版本的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