在 Chef 中,是否可以将一本食谱的 serverspec 测试包含到另一本食谱中?

In chef, is it possible to include serverspec tests of one cookbook into another cookbook?

考虑一下,我有两本食谱 A 和 B,每本都有自己的集成测试,使用 serverspec 测试和 kitchen。如果我只想针对自己的测试套件测试一本食谱,一切都可以正常工作。现在,如果我创建一个说明书 C,其中包括说明书 A 和 B 及其自己的实现和相应的集成测试代码。我可以在 C 的 serverspec 测试中重用 A 和 B 的 serverspec 测试吗?

目前没有,除了一些手动 require '../../../../othercookbook/test/integration/default/serverspec/other_spec' 或类似的不稳定因素,这将取决于您碰巧使用的精确文件夹布局。

InSpec 使这更容易一些,因为两本说明书都可以使用一个共享的 InSpec 测试配置文件。

我不会评论 Inspec,它有自己的问题。然而,为了做你想做的事,我试图在没有太多相对路径和怪异的情况下做类似的事情。我在 github 上找到了 http://serverspec.org/advanced_tips.html helpful especially the part on shared behaviors but the one I found most helpful was http://vincent.bernat.im/en/blog/2014-serverspec-test-infrastructure.html 和他的来源。通过一些简单的模组,它比我希望的更好,比我在 InSpec 中拥有的任何东西都要好得多。希望这有帮助,但当然是 YMMV。