在rspec-puppet中需要类名

时间:2015-07-14 17:10:50

标签: rspec puppet

我有两个不同的清单文件,一个是定义,另一个是正常清单。

他们在正常清单中使用require classname

class bfile { 
  require dummy 
  if $::operatingsystemmajrelease > 5 { 

    file {'/some/path/foo': 
      ensure => present, 
      owner => 'root', 
      group => 'root', 
      mode => '0644', 
    }
  }
}

我尝试了it {should contain_class('dummy')}it {should contain_require('dummy')}

但我收到"Could not find class dummy on node"错误。

puppet-rspec中是否有可用选项来检查require classname

1 个答案:

答案 0 :(得分:0)

错误消息Could not find class dummy on node可能表示class dummy不在modulepath中。建议使用绝对范围和模块:require ::my_module::dummy。该类应在:

中定义
modules/my_module/manifests/dummy.pp

关于第二部分,require将导致Puppet确保bfile类中的每个资源都应用于任何dummy类中的每个资源之前。

这意味着您应该能够以这种方式进行测试(RSpec> = 3语法):

it { is_expected.to contain_file('/some/path/foo').that_requires('Class[bfile]') }