问题标签 [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.
rspec - 如何检查 Puppet 资源的数组参数是否包含值
我正在编写一个包含 ::apache::vhost 资源的自定义 puppet 模块,并且想在我的 rspec 测试中验证目录参数是否包含某个值,而不复制在规范测试中大部分是硬编码的整个目录配置.
为简洁起见,我删除了大部分清单。
我可以用类似的东西来测试整个指令参数
但是目录参数很长而且是静态的,我很想避免这种情况。
rspecinclude
匹配器看起来像我需要的,但我不知道如何使用它来验证参数或$allowed_subnets_directives
变量
rspec-puppet - rspec-puppet 不支持 file_line 资源
我有以下带有 file_line 资源的清单
下面是rspec文件
当我运行 rake-spec 命令时出现以下错误
rspec 将不支持 file_line resporce?
因为如果我删除“file_line”资源并运行 rsepc 文件它的工作
rspec-puppet - Puppet Rspec:尚未评估类
我正在为 puppet 模块编写 rspec 测试,该模块进行以下调用:
当我运行测试时,我收到以下警告:
Could not look up qualified variable 'services::service'; class services has not been evaluated
我可以通过在我的 init.pp 中包含服务模块来解决这个问题。但是,有没有办法从我的测试中要求服务模块,例如 spec_helper.rb 或测试用例本身?
testing - 是否可以在 rspec-puppet 中编写测试来检查注册表是否存在?
由于某种原因,我正在尝试使用 puppet 模块使用 exec 资源而不是使用 Package 资源来安装 .net framework 4.5.2。我想写一个测试用例来检查它是否安装。我能找到检查它是否已安装的唯一方法是检查注册表项。
我想知道我是否可以在 rspec-puppet 中编写一个测试来检查注册表是否存在?
我尝试在 serverfault 上发布这个问题,但我无法处理 Captcha,它要求它无数次,所以我不得不在这里发布。道歉。
提前致谢
ruby-on-rails - 未定义的局部变量或方法 `is_expected' for #
我写了一个测试如下:
结束结束
当我运行 rspec spec/classes/init_spec.rb; 我收到以下错误:
1) acpid 在 centos-6-x86_64 上支持的操作系统失败/错误:it { is_expected.to compile.with_all_deps } NameError: undefined local variable or method is_expected' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1::Nested_1:0x000000057b9aa8>
# ./spec/classes/init_spec.rb:10:in
block (5 levels) in '
ruby - 为什么在切换 ruby 版本时 rspec puppet 会因未定义的方法错误而失败?
我开发了我的木偶模块,在以下 gem 文件上1.8.7
运行了 ruby 版本bundle install
,并且 rspec 测试成功运行(木偶运行也是如此):
但是,当我在具有 ruby 的 CI 服务器bundle install
上执行相同操作时,我遇到了以下 rspec 失败:Gemfile
1.9.3
常见的错误是:
使用该each_with_index
方法的模板:
我不明白为什么使用不同版本的红宝石会失败?我也尝试过 ruby 2.1.1
,结果相同。结果仅在使用 ruby 的 CI 服务器上成功1.8.7
(与我用于开发模块的版本相同)。
更新 1
似乎因为elastic_hosts
是一个哈希映射,而我有一个字符串它失败了。我确实与trusted_hosts
(另一个哈希图)一起解决了这个问题,这导致大多数测试通过但错误仍然存在。
注意:该错误与上面突出显示的常见错误相同。
我还用完整的内容更新了上面的模板文件。
如果您查看我的配置规范文件,我没有default
在任何地方指定为字符串,但它告诉我这是错误..
使固定
怀疑我的 init 规范类设置了默认值,并添加了 hiera 查找elastic_hosts
并trusted_hosts
修复了该问题。
更新 2
此行为在 version1.8.7
和 version >之间是可重现的1.9.3
。它似乎与如何处理哈希有关。
testing - Puppet:rake 规范找不到类 ::splunk
我正在尝试测试我的 puppet 模块,但我收到一条错误消息,指出它找不到类。
我写了几个内部使用的 Puppet 模块;既然我对木偶有兴趣,我想编写测试。由于我遇到了问题,我决定从根本上重新开始一个新的干净模块来弄清楚我需要做什么。
检查文件虽然我认为它们包含它们应该包含的内容:
清单/init.pp
规范/类/init_spec.rb
Could not find class ::splunk
这是让我感到困惑的部分。
我阅读规范文件的方式是它在 init 中查找class{'splunk': ... }
这可能是我误读了它,因为它们会以损坏的规范文件开始,但以防万一我尝试测试包。
清单/init.pp
规范/类/init_spec.rb
我仍然收到类似的错误消息:
很抱歉提出这样一个基本问题;我真的很感谢你的帮助。我真的很喜欢关于测试 Puppet 代码的优秀教程的链接;我很想使用 Vagrant 来确保我的代码实际上会按照我的意愿去做。
更新: 我相信我遵循了@Peter_Souter 的建议;我仍然收到找不到课程的错误。我发布了引用的文件的内容,以尝试验证我做了正确的事情,以防出现其他错误。
rspec - 您可以覆盖 rspec-puppet 中的参数化类变量吗?
我正在对现有模块(不是我自己编写的)进行单元测试。我似乎无法将 params 类undef
值覆盖为一个hash
值。
params 类具有以下内容(仅摘录):
主要课程(仅摘录):
以及以下配置类(仅摘录):
在 config_spec.rb 文件中,我有以下内容:
我将 hiera 查找splunk
插入到 myclass_spec.rb 文件中,希望它会覆盖:
但我继续收到以下错误:
如何覆盖splunk
变量?
puppet - Rspec Puppet:定义类型迭代
- 使用木偶 3
- 使用 rspec-puppet 进行测试
- 使用定义的类型迭代哈希数组
- 出现错误,告诉我我的参数(默认为 $title 的值)无法按我的方式访问,因为它不是数组或哈希
我在 puppet 模块中使用旧式迭代,创建一个定义的类型来迭代一个哈希数组。我正在尝试在 rspec-puppet 中为此定义编写测试,尝试将哈希分配给:title
using let()
。然后$title
应该将其设置为我的变量$daemon
,但我的测试不断抛出错误,说这$daemon
不是哈希或数组。
这是我创建定义类型的方式:
这就是我尝试设置标题的方式:
这是错误:
daemon is not a hash or array when accessing it with package_version
实际上,我对使用定义的类型进行迭代有点陌生,并且在 rspec-puppet 上非常新,所以我不确定我是否在这里遗漏了一些明显的东西。
但是为什么只抱怨package_version
而不抱怨package_name
呢?更重要的是:为什么它不是散列,当(我相信)我在规范文件中正确地将它设置为散列时。
我应该提一下,使用此定义类型的类的另一个测试成功完成。因此,如果我猜测的话,它似乎与我在直接测试定义时尝试设置标题的方式有关。
rspec - 如何模拟事实来测试对事实进行十进制乘法的 Puppet 模板?
语境:
我有一个 puppet 模板,它在渲染时处理事实的count
子组件。processors
这个事实存在于我所有的客户身上。
该事实的用例是在对其执行十进制数学的模板行中,例如:MyConfigVar=<%= 0.9 * @processors['count'] %>
在某个.erb
文件中。
我想要:
- 将我的模板化代码部署到生产主机。
- 为我的模板编写健壮的单元测试,这样我就可以确定它会正确呈现,给定各种合理的事实值。
我试过的:
首先,我尝试使用印记:<%= 0.9 * @processors[:count] %>
. 如果我用 rspec-puppet 模拟类似的东西facts = { :processors => { :count => 10 } }
,我的测试都通过了。清单应用程序不起作用;它有一个“不能相乘nil
”的错误。Sigils显然已经出来了。
然后,我尝试使用字符串键:<%= 0.9 * @processors['count'] %>
. 我使用 sigil ( facts = { :processors => { :count => 10 } }
) 的测试没有被选中,但我的值被正确找到并乘以facts = { :processors => { 'count' => 10 } }
. 然后所有的测试都通过了。但是,清单应用程序因失败而Can't coerce String into Int
失败。
然后,我尝试了字符串值。模板仍然读取<%= 0.9 * @processors['count'].to_i %>
,我测试了字符串和整数值,例如
测试都通过了,但清单应用程序呈现0.0
了事实的价值。
问题:
两个主要问题:
- 我怎样才能可靠地使用这个(或任何)事实来获得内联十进制数学?
- 实际上,我如何才能可靠地
rspec-puppet
对生产代表类型进行单元测试、使用或类似的模拟值?