我们想让我们的Rspec Puppet测试将params.pp的内容读入到一个散列中,并验证该散列中没有意外的元素。
我找到的所有信息都描述了如何通过let (:params)设置测试参数。
我们已经在这样做了,但是想要做一些像expect params.keys.sort.to eq ('param1', 'param2', 'param3')这样的事情,但是不知道如何将params.pp的内容放到一个我们可以在测试中使用的变量中。
我们使用的是Puppet 3.7.5。
发布于 2016-07-14 00:28:08
名为params.pp的Puppet清单的内容通常是简单名称为"params“的Puppet类的定义(或者可能是具有该名称的已定义类型的定义)。对于模块来说,在"params class“模式的实现中使用这样的类是相当常见的,其中类的目的是通过它的类变量为模块中其他类的类参数提供默认值。
因此,我假设您要做的是将类变量的名称和值收集到一个散列中来测试它们,但这样的测试超出了rspec-puppet的范围:
Puppet测试是为了测试
的行为,当它将你的清单编译成一个傀儡资源目录时。
(Rspec-puppet Tutorial)
换句话说,rspec-puppet用于测试目录编译过程及其结果。如果你检查可用的匹配器,你会发现这是他们的关注点。但是,不是参数的类变量的值(例如params类的值)不会包含在已编译的编目中,因此它们不会受到puppet-rspec测试的影响。您可以测试这些值是否反映在目录中包含的资源的参数中,但是目录不包含有关可用但未使用的变量的任何信息。
https://stackoverflow.com/questions/38354411
复制相似问题