2016-04-14 7 views
0

私はCouchbaseの実装を統合テストしていますが、最終的に一貫性のあるCouchbaseの性質に問題があります。本番環境では、データが古くなっても大丈夫ですが、テスト時にいくつかのデータを挿入して、私がさまざまなサービスを介してデータを取得していることを確認したいと思います。私のテストの期待がそれを説明できないので、データが古くなっていれば、これは機能しません。統合テスト中にビューインデックスを更新するcouchbaseを強制する

これを回避するには、CouchbaseクライアントでstaleStateをfalseに設定しますが、これはすべてのテストでインデックスの再構築がトリガーされ、実行時間が長くなることを意味します。

Couchbaseを強制的に起動させて、デザインドキュメントのインデックスを一度再構築する方法はありますか?基本的には、すべてのテストデータをアップロードし、再構築をトリガーしてからテストケースを実行したいと思います。

また、Couchbaseとの統合テストのためのより良いパターンがある場合は、それを聞いてみたいと思います。

おかげで、

M.

答えて

0

インデックスに行く必要がより多くのデータが実際に存在する場合、古い=偽が設定されている場合Couchbaseのが唯一のビューのインデックスを再構築します。あなたの最初の失効= falseには時間がかかるかもしれませんが、残りの呼び出しは、より多くのデータをクラスタに入れていない限り、stale = falseを設定しても速くなるはずです。

以降のすべての呼び出しでは、最新のものであることを確認するためにインデックスチェックが行われるため、わずかな(ミリ秒以下の)遅延が発生します。これを望まない場合は、単にstale = trueでクエリを実行し、それ以上のデータを挿入しない限り正しい結果を得なければなりません。

最後に注意しなければならないのは、ビューインデックスビルドはインクリメンタルなので、インデックス全体を再構築しないことです。

関連する問題