1

CQ5 で統合テストを行った後にクリーンアップするソリューションを探しています。しばらく調査した結果、CQ5 で JUnit テストを実行することができました (これは文書化されていません)。すべてが期待どおりに機能するようになったので、maven-deployment を使用して CQ5 サーバーでこれらのテストを実行し、後でテスト データをクリーンアップするソリューションを探しています。たとえば、テスト目的で作成したテスト ユーザーまたはテスト ページのように、後でシステムに保持したくない場合があります。そのようなことをするためにcrxにビルドされたソリューションはありますか? これまでのところ、テストを実行してスナップショットを再度インストールするよりも、テストを使用して展開を行い、その後テストを行わずに展開するか、すぐにスナップショットを使用して展開を行うことも考えました。しかし、デプロイするサーバーが多数あるため、これらのソリューションはすべて非常に時間がかかります。時間は貴重です:)

4

1 に答える 1

1

テストの文書化が不十分であることについて、私は最近、Sling ベースのアプリケーションのテスト手法の概要としてhttp://sling.apache.org/site/testing-sling-based-applications.htmlを書きました。CQ5 は Sling をベースにしているため、これらの手法はすべて Sling に適用されます。

テスト コンテンツをクリーンアップするために、CQ5.5 またはそれが使用する CRX バージョンでは、「テストの前にスナップショットを取得し、テスト後にスナップショットに戻す」機能が高速に提供されているとは思いません。

ZFS などのスナップショットをサポートするファイルシステムで実行できる場合は、テストを実行する前にファイルシステムのスナップショットを作成し、CQ5 を開始して実行し、CQ5 を停止してそのスナップショットに戻ることができます。

テスト専用の使い捨てインスタンスでテストを実行することもできます。CQ5 インスタンスのセットアップは簡単で、適切なテスト ボックスで 4 ~ 5 分以上かかることはありません。これは、Sling統合テストのサンプルのように、インスタンスを最初からセットアップする Maven ビルドで行います。

それとは別に、/content/test、/var/test などの特定のパスの下にすべてのテスト コンテンツを配置して、テスト後に削除できるようにすることもできます。または、すべてのテスト コンテンツ ノードに my:toDelete mixin を追加して、以前にそれらを見つけられるようにします。ただし、この場合、テスト中に CQ5 自体が作成するコンテンツ (ワークフロー インスタンスなど) は削除されません。

于 2012-06-21T07:48:27.193 に答える