如何覆盖 rspec-puppet 中的 hiera_data?
How do I override hiera_data in rspec-puppet?
假设我有以下测试:
context 'test' do
let(:hiera_data) { { :number => '2' } }
it { should have_module__define_resource_count(2) }
end
context 'test2' do
let(:hiera_data) { { :number => '10' } }
it { should have_module__define_resource_count(10) }
end
第一个测试通过,但是当第二个测试是运行时却失败了,因为hiera变量number
还是2.
似乎let(:hiera_data)
无法覆盖之前声明的变量。
根据this readme,如果 hiera 数据设置在不同的文件中,它应该可以工作,但它不起作用。
如何在一个规范文件中多次测试 hiera?
我 运行 遇到了同样的问题,并且被难住了一段时间。最终我发现hiera信息是。您可以这样修复它:
let(:facts) {{ :cache_bust => Time.now }}
例如:
傀儡代码:
class example::bar {
notify { 'bar': message => hiera('bar_message') }
}
rspec-傀儡代码:
describe "example::bar" do
let(:facts) {{ :cache_bust => Time.now }}
describe "first in-line hiera_data test with a" do
let(:hiera_data) { { :bar_message => "a" } }
it { should contain_notify("bar").with_message("a") }
end
describe "second in-line hiera_data test with b" do
let(:hiera_data) { { :bar_message => "b" } }
it { should contain_notify("bar").with_message("b") }
end
end
这有效! I have a PR to add it to the docs. The botfish fork is the most recently maintained fork of hiera-puppet-helper (see the note on the original)
假设我有以下测试:
context 'test' do
let(:hiera_data) { { :number => '2' } }
it { should have_module__define_resource_count(2) }
end
context 'test2' do
let(:hiera_data) { { :number => '10' } }
it { should have_module__define_resource_count(10) }
end
第一个测试通过,但是当第二个测试是运行时却失败了,因为hiera变量number
还是2.
似乎let(:hiera_data)
无法覆盖之前声明的变量。
根据this readme,如果 hiera 数据设置在不同的文件中,它应该可以工作,但它不起作用。
如何在一个规范文件中多次测试 hiera?
我 运行 遇到了同样的问题,并且被难住了一段时间。最终我发现hiera信息是。您可以这样修复它:
let(:facts) {{ :cache_bust => Time.now }}
例如:
傀儡代码:
class example::bar {
notify { 'bar': message => hiera('bar_message') }
}
rspec-傀儡代码:
describe "example::bar" do
let(:facts) {{ :cache_bust => Time.now }}
describe "first in-line hiera_data test with a" do
let(:hiera_data) { { :bar_message => "a" } }
it { should contain_notify("bar").with_message("a") }
end
describe "second in-line hiera_data test with b" do
let(:hiera_data) { { :bar_message => "b" } }
it { should contain_notify("bar").with_message("b") }
end
end
这有效! I have a PR to add it to the docs. The botfish fork is the most recently maintained fork of hiera-puppet-helper (see the note on the original)