RavenDB:在内存中获取异常文档存储"Voron在32位模式下容易出现故障."

Ars*_*ore 15 unit-testing ravendb

遵循RavenDB的文档后

http://ravendb.net/docs/article-page/2.5/csharp/samples/raven-tests/createraventests

我无法成功通过内存文档存储的创建来运行单元测试.我使用RavenDB的RavenTestBase复制并粘贴了上面文档中的测试样本.

[TestClass]
public class IndexTest : RavenTestBase
{
    [TestMethod]
    public void CanIndexAndQuery()
    {
        using (var store = NewDocumentStore())
        {
            new SampleData_Index().Execute(store);

            using (var session = store.OpenSession())
            {
                session.Store(new SampleData
                {
                    Name = "RavenDB"
                });

                session.SaveChanges();
            }

            using (var session = store.OpenSession())
            {
                var result = session.Query<SampleData, SampleData_Index>()
                    .Customize(customization => customization.WaitForNonStaleResultsAsOfNow())
                    .FirstOrDefault();

                Assert.Equals(result.Name, "RavenDB");
            }
        }
    }
}

public class SampleData
{
    public string Name { get; set; }
}

public class SampleData_Index : AbstractIndexCreationTask<SampleData>
{
    public SampleData_Index()
    {
        Map = docs => from doc in docs
                      select new
                      {
                          doc.Name
                      };
    }
}
Run Code Online (Sandbox Code Playgroud)

到达NewDocumentStore()...我收到以下异常:

"用户代码未处理异常Voron在32位模式下容易出现故障.使用Raven/Voron/AllowOn32Bits强制在32位进程中运行voron."

我正在使用Visual Studio 2013(Update 4)和RavenDB 3.0

谢谢!

Chr*_*sgh 12

在NewDocumentStore的构造函数中传入configureStore参数.这是一个以EmbeddableDocumentStore为参数的Action.在该操作中,您可以设置配置的不同部分,包括AllowOn32Bits属性.

public void ConfigureTestStore(EmbeddableDocumentStore documentStore)
{
    documentStore.Configuration.Storage.Voron.AllowOn32Bits = true;
}
Run Code Online (Sandbox Code Playgroud)

然后将其作为构造函数中的configureStore参数传递.

using (var store = NewDocumentStore(configureStore:ConfigureTestStore))
Run Code Online (Sandbox Code Playgroud)