Puppet:测试文件中的变量值

Puppet:测试文件中的变量值,puppet,rspec-puppet,Puppet,Rspec Puppet,我正在为puppet编写一些测试,在我的init_spec.rb文件中,我想使用默认的_facts.yml文件中声明的变量。如何导入该变量的值而不必在init_spec.rb文件中声明它 提前谢谢 通常,您可以访问RSpec.configuration对象中的数据 假设您有如下默认事实文件: ▶ cat spec/default_facts.yml # Use default_module_facts.yml for module specific facts. # # Facts speci

我正在为puppet编写一些测试,在我的init_spec.rb文件中,我想使用默认的_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"
您可以在测试中这样处理这些数据:

▶ 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'])到等式'172.16.254.254'
结束
(我当然假设您的默认事实文件设置正确,例如由。)

相反,如果您只想以常规方式访问任意YAML文件中的数据,还可以执行以下操作:

▶ cat spec/fixtures/mydata.yml 
---
foo: bar
然后在测试中,您可以编写:

需要“yaml”
mydata=YAML.load_文件('spec/fixtures/mydata.yml'))
描述“测试”做什么
这是“foo”do
expect(mydata['foo'])到等式'bar'
结束
结束