Chef infra 由';生成的项目根目录中的.kitchen.yml文件的用途是什么;厨师长生成应用程序';?

Chef infra 由';生成的项目根目录中的.kitchen.yml文件的用途是什么;厨师长生成应用程序';?,chef-infra,test-kitchen,berkshelf,berksfile,Chef Infra,Test Kitchen,Berkshelf,Berksfile,我有一份旧的食谱回购协议,旨在与Vagrant一起创建一个完整的开发环境。我想根据最佳实践“重构”它。我想拆分大的烹饪书,为社区烹饪书制作合适的包装烹饪书,并添加Testkitchen可以运行的InSpec测试,以检查所有东西是否按预期安装 我决定从头开始,看看通过执行chef generate app some_name将创建什么样的框架。此命令生成以下一组文件: . |-- .gitignore |-- .kitchen.yml <---------- |-- README.m

我有一份旧的食谱回购协议,旨在与Vagrant一起创建一个完整的开发环境。我想根据最佳实践“重构”它。我想拆分大的烹饪书,为社区烹饪书制作合适的包装烹饪书,并添加Testkitchen可以运行的InSpec测试,以检查所有东西是否按预期安装

我决定从头开始,看看通过执行
chef generate app some_name
将创建什么样的框架。此命令生成以下一组文件:

.
|-- .gitignore
|-- .kitchen.yml     <----------
|-- README.md
|-- cookbooks
|   `-- some_name
|       |-- Berksfile
|       |-- chefignore
|       |-- metadata.rb
|       |-- recipes
|       |   `-- default.rb
|       `-- spec
|           |-- spec_helper.rb
|           `-- unit
|               `-- recipes
|                   `-- default_spec.rb
`-- test
    `-- smoke
        `-- default
            `-- default_test.rb
。
|--.gitignore

|--.kitchen.yml
app
是manyrepo和monorepo设计的混合体,因此在这种结构中,您可以将所有本地食谱保存在单一repo中,并根据需要引入外部材料。root kitchen.yml的想法是为整个应用程序提供一个进行顶级测试的地方。通常这意味着现在要测试策略而不是食谱,请参见示例

至于cookbook解决方案问题,如果不使用策略,您可能需要一个根Berksfile,尽管它可以是:

source 'https://supermarket.chef.io/'
source chef_repo: '.'
cookbook 'whatever'

这个
应用程序
风格有点像一个实验,可能需要修改/更新一下,因为它已经过时了。

刚刚在github上发现了同样的问题: