我正在使用 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;
但这没有帮助。