Rspec 最佳实践:在Jenkins中测试使用Berkshelf的chefspec

Rspec 最佳实践:在Jenkins中测试使用Berkshelf的chefspec,rspec,jenkins,chef-infra,berkshelf,chefspec,Rspec,Jenkins,Chef Infra,Berkshelf,Chefspec,我想将我的ChefSpecs与Jenkins集成在一起,这样一个Jenkins作业可以运行所有烹饪书的所有规格,并打印一个摘要。不幸的是,这似乎不像我想象的那么容易。编写一个简单的Rakefile来创建一个rspec-rake任务(比如在测试标准Ruby规范时)不会有帮助,因为rspec希望在调用它的目录中有一个Berksfile 所以,似乎只有两种方法可以测试烹饪书的规格 为每一本烹饪书创造一份詹金斯工作 手动迭代Jenkins中的食谱,并在我找到的每本食谱中调用rspec。它不会打印所有测

我想将我的ChefSpecs与Jenkins集成在一起,这样一个Jenkins作业可以运行所有烹饪书的所有规格,并打印一个摘要。不幸的是,这似乎不像我想象的那么容易。编写一个简单的Rakefile来创建一个rspec-rake任务(比如在测试标准Ruby规范时)不会有帮助,因为rspec希望在调用它的目录中有一个Berksfile

所以,似乎只有两种方法可以测试烹饪书的规格

  • 为每一本烹饪书创造一份詹金斯工作
  • 手动迭代Jenkins中的食谱,并在我找到的每本食谱中调用rspec。它不会打印所有测试的摘要,而且出于多种其他原因,它看起来很愚蠢
这里的推荐方式是什么?我是否需要为每本烹饪书创建一份单独的工作,还是有更好的方法?尤其是与伯克利公司的合作

我可以看到为每一本烹饪书的说明书做一份工作的好处,但这也意味着从同一个回购协议中为几十本烹饪书做一次git拉动。我们目前采用“一次回购所有食谱”的方法

干杯,
Stefan

如果您可以重新组织烹饪书的git存储库,请尝试以下操作:

  • 具有以下目录结构

    流浪汉档案 Gemfile 伯克斯菲尔 cookbooks/cookbook_a/metadata.rb 食谱/食谱a/食谱/食谱1.rb 食谱/食谱a/食谱/食谱2.rb cookbooks/cookbook_b/metadata.rb 食谱/食谱b/食谱/食谱5.rb 食谱/食谱b/食谱/食谱6.rb spec/spec_helper.rb 规范/食谱\u a/配方\u 1\u规范rb 规范/食谱\u a/食谱\u 2\u规范rb 规格/烹饪书\u b/配方\u 5\u规格rb 规格/食谱a/配方6\U规格rb

  • 执行以下1个命令:

    bundle exec rspec规范

  • 这将对spec/目录下的所有烹饪书执行chefspec。
    我的Jenkins工作包含上述命令。

    这可能有点基于观点。我还没有完全设置它,但我将使用它来生成作业。可以从Github API检索要生成的作业(请参阅)。我认为你应该在每本食谱上都有一份工作。这是个好主意。但我现在有一个工作,每一个规格,这被证明是更实际的最后。