3

現在、scala で specs2 を mongodb/reactivemongo + Play! と一緒に使用する問題に取り組んでいます。

mongodb に書き込むテストを実行すると、最初の操作は正常に実行されますが、mongodb へのタイムアウトが原因で、後続のすべてのテスト/書き込みが失敗します。

ここのリアクティブ mongo サイトで、既に文書化されているバグと思われるものを見つけました: https://github.com/ReactiveMongo/Play-ReactiveMongo/issues/32

この問題の回避策を知っている人はいますか?

すでに試しました:

  • テストを強制的に順番に実行する
  • 独自の偽のアプリケーションで実行される各テスト
  • すべてのテストを同じ偽のアプリケーションで実行する
  • コレクションを def として定義する (上記の問題 32 で提案されているように)

どんな助けでも大歓迎です!

4

2 に答える 2

0

テスト中にタイムアウトも発生しましたが、これはGlobal.onStart()関数の副作用でした。collection.indexesManager.ensure()ドキュメントによると、これはブロック操作になる可能性があります。

新しいアプリをインスタンス化し、データベースへの書き込み/読み取りを行うテストがあったため、このインデックスは多くのタイムアウトにつながります。したがって、1 つの解決策は、アプリケーションの起動時にインデックスとのやり取りを削除することです。

この投稿がかなり古いことは承知していますが、他の人の役に立てば幸いです。

于 2016-05-12T13:36:59.717 に答える