0

我看到大多数社区食谱都有测试。当我阅读一些文章时,这些​​测试可以简单地描述为单元测试(食谱是否按照它所说的那样做?)和集成测试(它在操作系统上工作吗?)。

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

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

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

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

4

2 回答 2

1

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

然后在社区测试之上,你在你的服务中添加一些特定的测试application-cookbook

但是,我注意到缺少 minitest 测试,并且越来越多的人使用ServerSpec. 根据我的简短调查,在厨师运行期间在您的机器上运行测试并不是您使用 ServerSpec 所做的事情。

于 2014-04-29T09:02:17.450 回答
1

您可以仅为您的说明书编写测试,并确保服务按照您的应用程序所需的正确运行。

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

这将测试您的应用程序/包装器说明书安装了所有资源以及您希望社区说明书安装的资源。

于 2014-04-29T21:29:54.633 回答