我希望在运行测试时,所有对RavenDb的调用都会显示在Resharper testrunner中,是否可以在客户端启用某种日志记录或跟踪?
答案 0 :(得分:4)
佩尔, RavenDB使用NLog来记录其操作。您可以将NLog配置为输出从Raven.Client。*到控制台/调试的所有内容,您可以使用以下配置执行此操作:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.netfx35.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target xsi:type="Console" Name="Console" />
</targets>
<rules>
<logger name="Raven.Client.*" writeTo="Console"/>
</rules>
</nlog>
答案 1 :(得分:1)
这只是我头脑中的问题。我使用Resharper和NUnit或XUnit。要在Resharper单元测试输出窗口中获取任何信息,我只需使用Debug.WriteLine("blah");
工作得很好。
现在RavenDb确实有一些地方你可以通过创建自己的Debug.WL(..)
来添加自己的自定义逻辑,例如IDocumentQueryListener
..
所以也许实施其中一个?
public class DebugWriteLineDocumentListener : IDocumentQueryListener
{
#region Implementation of IDocumentQueryListener
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization)
{
// Do whatever you want, here.
// UnTested .. but I *think* the ToString will list the Linq query.
Debug.WriteLine(queryCustomization.ToString());
}
#endregion
}
然后只需使用DocumentStore
...
documentStore.RegisterListener(new DebugWriteLineDocumentListener());
看看是否有帮助..
我没有尝试过......只是我头脑中的第一件事:)
GL!让我们发布!