我正在catalog
从 Ruby 应用程序中对对象运行 rspec 测试,使用Rspec::Core::Runner::run
:
File.open('/tmp/catalog', 'w') do |out|
YAML.dump(catalog, out)
end
...
unless RSpec::Core::Runner::run(spec_dirs, $stderr, out) == 0
raise Puppet::Error, "Unit tests failed:\n#{out.string}"
end
(完整代码可以在https://github.com/camptocamp/puppet-spec/blob/master/lib/puppet/indirector/catalog/rest_spec.rb找到)
为了传递我想要测试的对象,我将它作为 YAML 转储到一个文件(当前/tmp/catalog
)并在我的测试中将它作为主题加载:
describe 'notrun' do
subject { YAML.load_file('/tmp/catalog') }
it { should contain_package('ppet') }
end
有没有一种方法可以将catalog
对象作为测试对象传递而不将其转储到文件中?