【问题标题】:Adding Complex Attributes to Test Kitchen为测试厨房添加复杂属性
【发布时间】:2015-01-15 01:03:39
【问题描述】:

我有以下厨师属性,我正在尝试将其转换为 YAML 以用于测试厨房:

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

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

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

【问题讨论】:

    标签: chef-infra yaml test-kitchen


    【解决方案1】:

    应该是

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

    【讨论】:

      【解决方案2】:

      我最好的主意,使用 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"
      

      免责声明:我通常不使用 test-kitchen 或 yaml,所以它可能有效,也可能无效。

      【讨论】:

        猜你喜欢
        • 2014-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-15
        相关资源
        最近更新 更多