问题标签 [rspec-puppet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
740 浏览

puppet - rspec-puppet 单元测试,用于使用资源定义类型

我编写了一个用户定义类型,它使用 wget 下载文件并存储在 /root 中。我已经使用 exec 类型来完成此操作。该代码在 puppet apply 上运行良好,现在当我尝试为其编写 rspec 测试时,我面临问题并收到失败消息。Please find the site.pp, download.pp, init_spec.rb file.

我是 rspec 和 puppet 的新手,无法找到解决方案,请提供有关如何为此定义类型编写 rspec 测试的建议。

清单/site.pp

模块/node_js/manifests/download.pp

rspec 测试文件

模块/node_js/spec/defines/init_spec.rb

rspec 执行错误显示信息

0 投票
1 回答
167 浏览

rspec - 有没有办法匹配 rspec-puppet 中参数的“任何值”

我正在测试一个资源,我想检查它的参数数量是否正确,但其中一个是 a require,我还没有弄清楚如何在 a 中匹配with。我使用 . 测试关系是否正确that_requires。我目前的测试看起来像

但我想用 替换withonly_with因为这with将允许在没有相应测试的情况下添加额外的参数。如果有一张parameter_count支票,比如有一张resource_count支票,我可以使用它。是否rspec-puppet支持正则表达式匹配,以便我可以检查参数是否存在?我对实际内容不感兴趣,因为这是由that_requires.

0 投票
1 回答
690 浏览

unit-testing - 为 Puppet 模块运行单元测试

我想将RSpec 单元测试添加到一些 Puppet 4 模块中。要开始并确认基本功能,我首先要运行标准 Puppet 模块(例如puppetlabs/apt )附带的单元测试。

如果我尝试像这样运行特定的单元测试

我只得到了失败,并且一些诊断输出似乎表明 Puppet 运行时环境的一部分(例如 module stdlib,它定义了 function merge)没有被正确拾取:

如果我尝试像这样运行所有单元测试

我收到此错误消息:

在这些尝试之前,我已经采取了这些步骤来准备运行时环境(在 Debian 主机上):

我的问题是:如何正确准备运行时环境并成功运行 Puppet Forge 的 Puppet 模块附带的单元测试,例如puppetlabs/apt

0 投票
1 回答
1077 浏览

unit-testing - 启动 RSpec-puppet 单元测试的正确方法

我创建了一个简单的 Puppet 4 类和一个单元测试,如下所示(在执行touch metadata.json; rspec-puppet-initwhile in之后modules/test/):

我可以通过执行rspec spec/classes/test__hello_world1_spec.rbwhile in来成功运行单元测试modules/test/

我现在想继续学习一个更高级的类,它使用来自另一个模块的代码,即concat(该模块已经安装在 arleady 中modules/concat):

当我尝试使用rspec spec/classes/test__hello_world2_spec.rbwhile in运行此单元测试时,modules/test我收到一条错误消息,其中包括:

失败/错误:编译期间它 { is_expected.to compile } 错误:评估错误:评估资源语句时出错,未知资源类型:'concat'

我怀疑根本原因是rspec找不到其他模块,因为它没有被告知“模块路径”。

我的问题是:我应该如何开始单元测试,尤其是需要访问其他模块的单元测试?

0 投票
1 回答
398 浏览

puppet - 为什么使用'lookup'或'hiera'函数的hiera查找的rspec-puppet行为不同?

运行 rake 规格测试我得到:

所以我决定改用查找。但是我的 hiera 查找现在不起作用

我正在使用 rspec-puppet-2.5.0 和一次 3.2.0,因为否则其他东西不适用于我们正在使用的 Puppet Enterprise 版本(相当于 puppet 4.7.0)(你不只是喜欢 Ruby版本控制)。

我怀疑是 rspec-puppet 拦截查找中的某些内容无法正常工作,并且找不到正确的 hiera.yaml。在我进行调试之前,我想知道是否有人已经看到了这个?

0 投票
1 回答
136 浏览

ruby - 使用 puppet gem 解析节点文件并为每个主机生成规范

我正在我们的 puppet 项目中集成rspec-puppet测试,并且我正在尝试为所有主机(最终可能还有其他资源)自动生成“应该编译”规范。这是为了确保至少所有内容都能成功编译。

给定一个节点列表,我可以这样做:

问题是如何实际获取主机列表。我可以使用正则表达式来解析节点文件,但这显然会导致精神错乱......由于 puppet gem 已经存在并用于通过 rspec-puppet gem 加载目录,我可以使用它来获取主机列表吗?

编辑:

我最终设法使用puppet pops 系统做到了这一点,但我不确定这是否是最好的方法,或者是否有一些更容易使用的更高级别的抽象:

0 投票
0 回答
63 浏览

ruby - Ruby 未定义方法错误 - 使用烧杯

我对这一切都很陌生。我正在尝试使用 Beaker 测试一个 puppet 模块。我不断得到这个:

这是我正在运行的命令 - “beaker --hosts myhost.yaml --pre-suite spec”。

我的 unit_spec.rb 包含以下内容:

结尾

任何帮助将非常感激!顺便说一句,我正在使用'puppetlabs_spec_helper/rake_tasks',因为当我刚刚使用'spec_helper'时,它给了我一个错误,即使它在那里也无法“加载此类文件”。

0 投票
1 回答
333 浏览

rspec - rspec-puppet 测试完成后不要删除公共 puppet 模块

.fixtures.yml中,有从公共库下载的模块,例如以下示例中的 stdlib 和 concat:

每当运行 rspec-puppet 测试时,都需要下载这些模块。测试完成后它们也会被删除。

如果所有测试都完全运行,那就太好了。但是如果有失败的测试需要单独运行,这些模块就不可用了。我必须一起运行所有测试(100+),因此可以下载和使用公共模块。当我调试一个小错误时,这很烦人。

有没有办法配置 rspec-puppet 使其不会每次都下载/删除这些公共模块?

0 投票
1 回答
105 浏览

ruby - 如何存根 Puppet::Type('user).instances.select

事实上我在打电话

如何在规范测试中存根?我有类似的东西:

但这会用一个数组而不是一个用户对象来存根它。我怎样才能正确地存根?

0 投票
1 回答
158 浏览

ruby - 在屏幕上输出 rspec 测试,同时将它们重定向到文件

在 .rpsec 中, --format json --out rspec.json

此设置将 rspec 测试结果重定向到 rspec.json。

同时我也想看这些结果显示在屏幕上。有没有办法做到这一点?