Testing 无法在RavenDB 3单元测试中使用事务

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

我们有两个依赖于事务的测试。我们现在正试图从Ravendb2.5迁移到3.0,在这样做的过程中,所有使用事务的测试都开始失败。我们使用NUnit作为我们的测试框架

我写了一个小例子来说明我们遇到的错误:

[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";