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)