Puppet:测试文件中的变量值
Puppet: variable value in test file
我正在为 puppet 编写一些测试,在我的 init_spec.rb 文件中,我想使用在 default_facts.yml 文件中声明的变量。我如何导入该变量的值而不必在 init_spec.rb 文件中声明它。
提前致谢!
一般来说,您可以访问 RSpec.configuration
对象中的数据。
假设您有一个这样的默认事实文件:
▶ cat spec/default_facts.yml
# Use default_module_facts.yml for module specific facts.
#
# Facts specified here will override the values provided by rspec-puppet-facts.
---
concat_basedir: "/tmp"
ipaddress: "172.16.254.254"
is_pe: false
macaddress: "AA:AA:AA:AA:AA:AA"
您可以像这样在测试中处理该数据:
it 'ipaddress default fact' do
expect(RSpec.configuration.default_facts['ipaddress']).to eq '172.16.254.254'
end
(我当然假设您的默认事实文件设置正确,例如 PDK。)
如果您只是想要一种通用的方式来访问任意 YAML 文件中的数据,您也可以这样做:
▶ cat spec/fixtures/mydata.yml
---
foo: bar
然后在你的测试中你可以这样写:
require 'yaml'
mydata = YAML.load_file('spec/fixtures/mydata.yml')
describe 'test' do
it 'foo' do
expect(mydata['foo']).to eq 'bar'
end
end
我正在为 puppet 编写一些测试,在我的 init_spec.rb 文件中,我想使用在 default_facts.yml 文件中声明的变量。我如何导入该变量的值而不必在 init_spec.rb 文件中声明它。
提前致谢!
一般来说,您可以访问 RSpec.configuration
对象中的数据。
假设您有一个这样的默认事实文件:
▶ cat spec/default_facts.yml
# Use default_module_facts.yml for module specific facts.
#
# Facts specified here will override the values provided by rspec-puppet-facts.
---
concat_basedir: "/tmp"
ipaddress: "172.16.254.254"
is_pe: false
macaddress: "AA:AA:AA:AA:AA:AA"
您可以像这样在测试中处理该数据:
it 'ipaddress default fact' do
expect(RSpec.configuration.default_facts['ipaddress']).to eq '172.16.254.254'
end
(我当然假设您的默认事实文件设置正确,例如 PDK。)
如果您只是想要一种通用的方式来访问任意 YAML 文件中的数据,您也可以这样做:
▶ cat spec/fixtures/mydata.yml
---
foo: bar
然后在你的测试中你可以这样写:
require 'yaml'
mydata = YAML.load_file('spec/fixtures/mydata.yml')
describe 'test' do
it 'foo' do
expect(mydata['foo']).to eq 'bar'
end
end