问题标签 [chefspec]

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 回答
164 浏览

ruby - ChefSpec 从包含的食谱中计算资源

我有一本厨师食谱 (cookbook_alpha::default),其中包括另一本食谱 (cookbook_bravo::default),使用include_recipe 'cookbook_bravo::default'.

当我使用 ChefSpec 测试 cookbook_alpha 时,会显示和测试 cookbook_alpha 中的所有资源。但是 cookbook_bravo 中的资源(文件、模板、用户等)显示为Untouched resources在 cookbook_alpha 测试运行中。Cookbook_bravo 有它自己的测试套件并且被充分覆盖,我认为没有必要在 cookbook_alpha 中编写重复的附加规范,只是为了覆盖来自 cookbook_bravo 已经测试过的资源。

0 投票
1 回答
1263 浏览

ruby - 通过从属性文件动态传递值来创建厨师食谱

我创建了一个厨师食谱,其中安装了提到的特定 rpm。这个 rpm 有一个版本号,需要从属性文件(它本身是动态创建的)动态加载。然后需要将此厨师食谱加载到厨师服务器中。

这里,v91-2是需要通过从属性文件中读取动态进入配方的值。

这是可以实现的吗?如果是,我该如何继续实现它。(不知道红宝石)!

0 投票
1 回答
1441 浏览

unit-testing - 用于在配方中测试数据包的 chefspec

我的食谱中有这段代码,现在我想编写一个 chefspec 来测试代码,然后再在节点上执行它。

我已经搜索了一些示例规范配方,但我找不到与数据包相关的任何内容。

我需要一些关于如何编写规范来测试上述代码的帮助。

0 投票
2 回答
414 浏览

ruby-on-rails - cron_d 的 chefspec NoMethodError

我有一个成功的资源:(收敛,按预期工作)

但添加规格后

chefspec得到错误:

为什么会这样?

匹配器已经定义https://github.com/opscode-cookbooks/cron/blob/master/libraries/matchers.rb

我是否需要includerequire在我的规范文件中使用某些东西(到目前为止都没有工作)?还是我需要创建自己的?

(编辑:stackoverflow autobot 要求我添加 ruby​​-on-rails 标签,所以我做到了。)

0 投票
1 回答
2753 浏览

ruby - chefspec:设置要在配方中的所有测试中使用的全局节点属性

我目前正在编写一个chefspec 配方,它设置某些节点属性,这是完成我的单元测试所必需的。我目前在每个测试中都设置这些属性,这似乎很浪费。我希望以不重复代码的方式执行此操作,即“全局属性?”。

我目前的工作配方如下:

这个 chefspec 测试通过没有问题:

但是,我希望只设置一次“node.automatic”和“node.set”语句(在测试之外),然后在后续测试中重用它们。

我“全局”设置这些属性的努力如下所示:

它返回以下错误:

我是chefspec的新手,所以也许我遗漏了一些东西。任何帮助是极大的赞赏。谢谢。

0 投票
1 回答
2112 浏览

unit-testing - 存根节点属性?在厨师长

我正在尝试为以下配方代码创建规范测试:

我对此有以下规范:

问题是这个测试总是会失败。如何正确模拟“node.attribute”的结果?? 谢谢你。

0 投票
1 回答
113 浏览

chef-infra - 非核心资源的chefspec测试

谁能告诉我如何为以下食谱代码编写chefspec测试?

我已经尝试了一些类似下面的方法,但我想这会失败,因为执行是由 selinux_policy 食谱执行的。

这失败了,因为没有定义方法:

所以我不太确定还能做什么。

任何帮助将非常感激。

谢谢,

爱德华

0 投票
1 回答
2549 浏览

chef-infra - chefspec 测试杂散红宝石变量

在这里,我在变量中返回提供者的状态,如何在 chefspec 中模拟该状态以进行测试?

0 投票
1 回答
357 浏览

chef-infra - chefspec 测试中的 new_resource 分配

我陷入了一个chefspec测试,该测试进入我的lwrp下面并断言它创建了一个目录。

如果我取消注释下面的行,则测试有效,但在尝试从 new_resource.settings 获取值时失败

chefspec 有没有办法传入上面的 new_resource 值?

谢谢你的帮助。

爱德华

*更新

它失败并显示以下消息:

完整的输出在http://fpaste.org/257744/14401829/

0 投票
1 回答
845 浏览

ruby - 从 rakefile 执行厨师测试

我有一些可以通过命令运行的主厨单元测试:chef exec rspec

但是,我正在尝试从 TeamCity 运行这些,并且我正在使用 rakefile。当我尝试执行 rakefile 时,测试文件中的 require 'chefspec' 行会导致错误"cannot load such file -- chefspec (LoadError)"

我知道chefspec已安装。我是 Ruby、chefspec、rspec 的新手。我知道提到了一个 gemspec 文件,我试图在可以运行命令chef exec rspec来执行测试的目录中创建一个。但是,当我尝试运行时,bundle install我得到了错误Could not locate Gemfile or .bundle/ directory。安装 ruby​​ 时是否有 gemfile 的默认位置?在这一点上我很迷茫。

C:/Ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:inrequire': 无法从 C:/Ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in 加载此类文件 -- chefspec (LoadErr or) from C require' from D:/../spec/octopus_tentacle_spec.rb:1:in:/Ruby22/lib/ruby/ gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:in load' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:inblock in load_spec_files' from C:/Ruby22/lib/ruby/gems/2.2.0/ gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in each' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:inload_spec_file 来自 C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3。 2/lib/rspec/core/runner.rb:102:in setup' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:88:inrun' 来自 C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner .rb:73:in run' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:41:ininvoke' 来自 C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/exe/rspec:4:in <top (required)>' from C:/Ruby22/bin/rspec:23:inload' 来自 C:/Ruby22/bin /rspec:23:in<main>'