你能将params.pp的内容读入Rspec-puppet中的哈希吗?

时间:2016-07-13 14:24:20

标签: ruby rspec puppet rspec-puppet

我们希望让我们的Rspec Puppet测试将params.pp的内容读入哈希并验证该哈希中没有意外的元素。

我发现的所有信息都介绍了如何通过let (:params)设置测试参数。

我们已经这样做了,但想做expect params.keys.sort.to eq ('param1', 'param2', 'param3')之类的事情,但不知道如何将params.pp的内容放入我们可以在测试中使用的变量中。< / p>

我们正在使用Puppet 3.7.5。

1 个答案:

答案 0 :(得分:0)

名为params.pp的Puppet清单的内容通常是Puppet类的定义,其简单名称为“params”(或者可能是具有该名称的已定义类型)。模块在“params类”模式的实现中使用这样的类是相当常见的,其中类的目的是通过其类变量提供模块中其他类的类参数的默认值。

因此,我认为你打算做的是将类变量的名称和值收集到哈希中来测试它们,但是这样的测试超出了rspec-puppet的范围:

  

当Puppet将您的清单编译成Puppet资源目录时,可以测试Pspet的行为。

Rspec-puppet Tutorial

换句话说,rspec-puppet用于测试目录编译过程及其结果。如果您检查可用的匹配器,您将看到这是他们的重点。不是参数的类变量(例如params类的那些)的值不会在编译的目录中包含它们,因此它们不受puppet-rspec的测试。您可以测试这些值是否反映在目录中包含 的资源的参数中,但目录中不包含任何可用但未使用的变量的信息。