私はelasticsearchを使用するノードプロジェクトで作業しています。私のテストチェーンは、ギャルプ、モカ、チャイ、サイロンです。私は一貫して動作するように私の統合テストを受けることに苦労しています。私はデータベースにサンプルデータをロードし、その上でいくつかのテストを実行したいと思います。読み込み中のドキュメントは、それらを使用するテストが実行されるまでにインデックスが作成されないため、問題が発生していると思います。mochaとの統合テストを行うときにelasticsearchのインデックスタイミングを処理するには
私は、次の手順を実行して、この周りに働いてきた:
before(function (done) {
testData.simpleLoadData(100, 2000);
setTimeout(function() {
done();
}, 5000);
});
これはローカルで正常に動作し、それはトラヴィスに時折動作します。タイマーを10000にアップすると、一般に両方の場所で機能します。
テストコードのsetTimeoutsに頼らずにこの方法がありますか?手動でタイミングを処理すると、私は少し不気味です。
タイムアウトを手作業で処理していますが、私には最良の選択肢がありますか、それとも良い方法がありますか?
注:これらは統合テストであり、明示的に外部依存関係を使用したいと考えています。私はすでにデータベースに依存していない単体テストを持っています。
したがって、リフレッシュは完了するまでブロックされますか?私は実際に私のストレージオブジェクトにリフレッシュメソッドを追加しました。ありがとう、私は今夜それを混乱させ、報告する。 – skarface
@skarfaceうん、それはブロックされます! :) – Zach
関連コードはこちら:http://pastebin.com/9GVWptpN refreshIndicesの終了後にデータが利用できないようです。まだノードにかなり新しい、私が何か基本的なものが欠けている場合はお詫び – skarface