RavenDB を使用して WebAPI アプリケーションに取り組んでいます。似たような概要を持つ XUnit テストがいくつかあります。
var checkQuery = session.Query<Resource>().Where(x => x.AliasIds.Any(a => a == alias.Id));
PAssert.Throws<InvalidOperationException>(() => checkQuery.Single());
var testString = Guid.NewGuid().ToString();
Controller.Post(testString);
var res = checkQuery.Single();
PAssert.IsTrue(() => res != null);
何が起こるかというと、複数のテストを同時に実行すると、その行で失敗します
var res = checkQuery.Single();
例外:
結果メッセージ: System.InvalidOperationException : シーケンスに要素が含まれていません
私が見つけたもの:
- checkQuery.Single() への最初の呼び出しがコメントされていれば、問題なく動作します。
- 問題のある行の前に Thread.Sleep(1000) を追加するとうまくいきます。
追加してみました
store.DatabaseCommands.DisableAllCaching();
store.Conventions.ShouldCacheRequest = _ => false;
しかし、それは役に立ちませんでした。