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
ファイルにダンプせずに、オブジェクトをテストの対象として渡す方法はありますか?