如何在社区食谱的帮助下测试最终的Chef服务器配置?

时间:2014-04-29 07:40:50

标签: chef cookbook test-kitchen

我看到大多数社区食谱都有测试。当我阅读一些文章时,可以简单地将这些测试描述为单元测试(烹饪书是否完成了它所说的?)和集成测试(它是否适用于操作系统?)。

我使用Vagrant和Chef社区食谱设置了LAMP虚拟环境。现在我想测试它。

首先,我想我将在我配置的系统上使用Kitchen CI运行所有社区的集成测试。我认为这是创作者编写这些集成测试的原因之一,因此管理员可以将所有测试放在一起并测试他们的系统。然而,经过一项小规模的研究,我发现烹饪书的测试方式各不相同,所以在我的系统上一次只运行所有这些方法似乎并不容易。

这是否意味着我应该自己编写测试?例如,使用Kitchen CI和serverspec。我猜他们不需要非常花哨,因为社区食谱已经过测试,但我仍然觉得检查服务是否正在运行以及配置文件是否存在是个好主意。

常见的工作流程是什么?自己写几个测试?或者只是“相信”社区食谱?或者有一种方法可以在配置操作系统后一起运行社区测试?

2 个答案:

答案 0 :(得分:1)

一种方法是使用minitest-handler食谱。如果您的运行中包含此烹饪书,那么files/default/tests/中存在的所有最小测试都将在您运行结束时执行,如果测试失败,Chef运行会失败,或者如果所有测试都通过则会成功。

然后,在社区测试之上,您可以在application-cookbook中为服务添加一些特定测试。

但是,我注意到缺少最小的测试,并且越来越多的人使用ServerSpec。根据我的简短调查,在厨师运行期间在您的机器上运行测试不是您使用ServerSpec执行的操作。

答案 1 :(得分:1)

您可以只为您的食谱编写测试,并确保服务正确运行您的应用程序所需。

例如,如果您使用的是Apache,则可以使用ServerSpec来确保Apache服务器正在运行并提供内容。

这将测试您的应用程序/包装器手册是否安装了所有资源以及您希望社区烹饪书安装的资源。