gpt4 book ai didi

.net - RavenDB 在单元测试期间连接到嵌入式文档存储

转载 作者:行者123 更新时间:2023-12-04 15:24:52 25 4
gpt4 key购买 nike

编辑

结果我正确地存储了文档,所以这个问题的开始部分不正确,可能是由于我对 RavenDB 的经验不足。但是,我仍然有一个问题,即在单元测试中使用 EmbeddableDocumentStore 时是否能够打开 RavenDB Management Studio。

在使用 NUnit 进行单元测试期间,我似乎遇到了在 EmbeddableDocumentStore 中存储文档的问题。为了查看我是否真的在存储文档,我正在尝试连接到嵌入式数据库。

尝试打开网址时 http://计算机名:8080/ (出于某种原因,raven db 总是在我的电脑上使用计算机名称)浏览器加载栏只是旋转,如果我停止单元测试并再次尝试 url,Chrome 只会给我一条消息,它无法连接。这是上下文的一些代码。

[TestFixture]
public class Test2 : IDisposable
{
private EmbeddableDocumentStore _documentStore;

[SetUp]
public void SetUp()
{
if (_documentStore != null) return;

_documentStore = new EmbeddableDocumentStore
{
DataDirectory = "Data",
RunInMemory = true,
UseEmbeddedHttpServer = true
};

_documentStore.Configuration.AnonymousUserAccessMode = AnonymousUserAccessMode.All;

_documentStore.Initialize();
}

[Test]
public void Test()
{
var document = StaticData.getdocument();

using (var session = _documentStore.OpenSession())
{
session.Store(document);
session.SaveChanges();
}

using (var session = _documentStore.OpenSession())
{
var test = session.Load<ObjectType>().Length;
//This is always 0
}
}

public void Dispose()
{
_documentStore.Dispose();
}
}

此外,我的测试项目的根目录中有 Raven.Studio.xap 文件。

我正在使用 VS2012 和 .Net 4.5,如果这有区别的话。

最佳答案

干得好:

static public void WaitForUserToContinueTheTest(EmbeddableDocumentStore documentStore, bool debug = true)
{
if (debug && Debugger.IsAttached == false)
return;

documentStore.SetStudioConfigToAllowSingleDb();

documentStore.DatabaseCommands.Put("Pls Delete Me", null,

RavenJObject.FromObject(new { StackTrace = new StackTrace(true) }),
new RavenJObject());

documentStore.Configuration.AnonymousUserAccessMode = AnonymousUserAccessMode.All;
using (var server = new HttpServer(documentStore.Configuration, documentStore.DocumentDatabase))
{
server.StartListening();
Process.Start(documentStore.Configuration.ServerUrl); // start the server

do
{
Thread.Sleep(100);
} while (documentStore.DatabaseCommands.Get("Pls Delete Me") != null && (debug == false || Debugger.IsAttached));
}
}

关于.net - RavenDB 在单元测试期间连接到嵌入式文档存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12859017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com