Chef infra 无法使用TestKitchen解析厨师角色

Chef infra 无法使用TestKitchen解析厨师角色,chef-infra,test-kitchen,Chef Infra,Test Kitchen,我正在尝试使用TestKitchen记录厨师角色的属性 下面是我的配置: roles/myrole.json { "name": "myrole", "json_class": "Chef::Role", "description": "Example", "chef_type": "role", "defa

我正在尝试使用TestKitchen记录厨师角色的属性 下面是我的配置:

roles/myrole.json

{
  "name": "myrole",
  "json_class": "Chef::Role",
  "description": "Example",
  "chef_type": "role",
  "default_attributes": {
    "git_cookbook": {
      "mykey1": "myvalue"
    }
  },
  "run_list": [
    "recipe[git_cookbook]"
  ]
}
git_食谱

log "Hello World, #{node['mykey1']}" do
  level :info
end

package 'git'
厨房。yaml

---
driver:
  name: vagrant

provisioner:
  name: chef_zero
  roles_path: ../roles

verifier:
  name: inspec

platforms:
  - name: ubuntu-20.04

suites:
  - name: default
    verifier:
      inspec_tests:
        - test/integration/default
    run_list:
        - role[myrole]
    attributes:
Policyfile.rb

name 'git_cookbook'

default_source :supermarket

run_list 'role[myrole]'

cookbook 'git_cookbook', path: '.'
当我运行命令:kitchen converge(或kitchen test)时,mykey1的值“myvalue”不会被记录

 ....
 Recipe: git_cookbook::default
 log[Hello World, ] action write 
 ....
似乎TestKitchen忽略了我在kitchen.yaml和Policyfile.rb中指定的角色,我试图从其中一个删除它,但没有一个选项起作用


知道为什么吗?我遗漏了什么吗?

在你的
git\u食谱中,你指的是属性:
节点['mykey1']

然而,在
角色/myrole.json
中,您有效定义的属性是:

node['git_cookbook']['mykey1']
那么在你的食谱中,你应该有:

log“你好,世界,{node['git_cookbook']['mykey1']}”怎么办
级别:信息
结束