添加复杂属性以测试厨房

时间:2015-01-14 14:33:05

标签: chef yaml test-kitchen

我有以下厨师属性,我试图转换为YAML测试厨房:

default['attr1']['attr2'] = {
    "setting1" => {
        "key1" => "value1",
        "key2" => "value2",
        "key3" => false
    },
};

在YAML中这会是什么样子,所以测试厨房会正确覆盖它?我想将特定测试厨房驱动程序的false值覆盖为true。

有一个类似的SO问题:Adding Attributes to Test Kitchen但是我尝试转换的属性更复杂(即值不是简单的字符串)。

2 个答案:

答案 0 :(得分:2)

应该是

attr1:
  attr2:
    setting1:
      key1: value1
      key2: value2
      key3: false

答案 1 :(得分:0)

我最好的主意,请使用irb:

irb(main):001:0> h={
irb(main):002:1*     "setting1" => {
irb(main):003:2*         "key1" => "value1",
irb(main):004:2*         "key2" => "value2",
irb(main):005:2*         "key3" => false
irb(main):006:2>     },
irb(main):007:1* }
=> {"setting1"=>{"key1"=>"value1", "key2"=>"value2", "key3"=>false}}

irb(main):010:0> require 'yaml'
=> true

irb(main):011:0> h.to_yaml
=> "---\nsetting1:\n  key1: value1\n  key2: value2\n  key3: false\n"

免责声明:我通常不使用测试厨房,也不使用yaml,所以它可能会也可能不起作用。