0

コミュニティのクックブックのほとんどにテストがあるのを見ました。いくつかの記事を読むと、これらのテストは、簡単に言えば、単体テスト (クックブックは書かれていることを実行するか?) と統合テスト (OS 上で動作するか?) として説明できます。

Vagrant と Chef コミュニティのクックブックを使用して、LAMP 仮想環境をセットアップします。今、私はそれをテストしたいと思います。

まず、プロビジョニングされたシステムで Kitchen CI を使用して、すべてのコミュニティの統合テストを実行しようと考えました。管理者がすべてのテストをまとめてシステムをテストできるように、作成者がこれらの統合テストを作成する理由の 1 つはそれだと思いました。しかし、ちょっとした調査の結果、クックブックのテスト方法が異なることがわかったので、私のシステムですべてを一度に実行するのは簡単ではないようです。

それは私が自分でテストを書くべきだということですか?たとえば、Kitchen CI と serverspec を使用します。コミュニティのクックブックはテスト済みなので、あまり凝ったものである必要はないと思いますが、サービスが実行されているかどうか、構成ファイルが存在するかどうかを確認することをお勧めします。

一般的なワークフローとは何ですか? 自分でいくつかのテストを作成しますか? それとも、コミュニティのクックブックを「信じる」だけですか? または、OS のプロビジョニング後にコミュニティのテストをまとめて実行する方法はありますか?

4

2 に答える 2

1

クックブックのためだけにテストを作成し、アプリケーションが必要とするサービスが正しく実行されていることを確認できます。

たとえば、Apache を使用している場合は、ServerSpec を使用して、Apache サーバーが実行され、コンテンツを提供していることを確認できます。

これにより、アプリケーション/ラッパー クックブックがすべてのリソースを、コミュニティ クックブックがインストールすることを期待するリソースとともにインストールしたことがテストされます。

于 2014-04-29T21:29:54.633 に答える
1

1 つの方法は、minitest-handlerクックブックを使用することです。このクックブックが実行に含まれている場合、存在するすべてのミニテスト テストfiles/default/tests/が実行の最後に実行され、Chef の実行は、テストが失敗した場合は失敗し、すべてのテストが合格した場合は成功します。

次に、コミュニティ テストの上に、サービスに特定のテストをいくつか追加しますapplication-cookbook

しかし、私は minitest テストが不足していることに気づき、ますます多くの人が を使用してServerSpecいます。私の簡単な調査によると、シェフの実行中にマシンでテストを実行することは、ServerSpec を使用して行うことではありません。

于 2014-04-29T09:02:17.450 に答える