Testing 无法在RavenDB 3单元测试中使用事务
我们有两个依赖于事务的测试。我们现在正试图从Ravendb2.5迁移到3.0,在这样做的过程中,所有使用事务的测试都开始失败。我们使用NUnit作为我们的测试框架 我写了一个小例子来说明我们遇到的错误:Testing 无法在RavenDB 3单元测试中使用事务,testing,transactions,nunit,ravendb,nosql,Testing,Transactions,Nunit,Ravendb,Nosql,我们有两个依赖于事务的测试。我们现在正试图从Ravendb2.5迁移到3.0,在这样做的过程中,所有使用事务的测试都开始失败。我们使用NUnit作为我们的测试框架 我写了一个小例子来说明我们遇到的错误: [TestFixture] public class TransactionTest : RavenTestBase { [Test] public void TransactionTest1() { using (var store = NewDocum
[TestFixture]
public class TransactionTest : RavenTestBase
{
[Test]
public void TransactionTest1()
{
using (var store = NewDocumentStore(configureStore: ConfigureTestStore))
{
using (var transaction = new TransactionScope())
{
using (var session = store.OpenSession())
{
session.Store(new SampleData { Id = "RavenDB" });
session.SaveChanges();
transaction.Complete();
}
}
}
}
public void ConfigureTestStore(EmbeddableDocumentStore documentStore)
{
documentStore.RunInMemory = true;
documentStore.Configuration.RunInUnreliableYetFastModeThatIsNotSuitableForProduction = true;
documentStore.EnlistInDistributedTransactions = true;
}
}
public class SampleData
{
public string Id { get; set; }
}
这将导致例外情况:
System.InvalidOperationException : The database <system> cannot be used with distributed transactions
但是,我的所有交易都无法正常进行。上述测试在RavenDB 2.5中运行良好。它不应该在Ravendb3中也起作用吗
旧版本:2.5.2874
新版本:3.0.3690我也在 阿连德回答了。解决方案是使用esent来运行测试,而不是voron 我添加了以下设置:
documentStore.Configuration.DefaultStorageTypeName = "esent";
documentStore.Configuration.DefaultStorageTypeName = "esent";