2011-01-05 27 views
2

我试图使用NUnit & ReSharper从单元测试项目中捕获NHibernate的记录信息。测试项目被配置为一个类库,并且它有它自己的App.Config文件。我知道App.Config文件是正确的,因为如果我在控制台应用程序中使用它,我会看到所有的NHibernate日志记录。当这个App.Config文件被放置在一个单元测试项目中时,Log4Net会神秘地停止工作。使用Resharper记录来自单元测试项目的NHibernate信息

我也玩过在测试项目本身初始化Log4Net。我已经尝试将[assembly: log4net.Config.XmlConfigurator()]添加到AssemblyInfo.cs文件中。我也试过拨打电话...

[SetUp] 
    public void Setup() 
    { 
     log4net.Config.XmlConfigurator.Configure(); 
    } 

...在测试夹具中。什么都没有任何想法将不胜感激。

+1

你的问题与Resharper没有任何关系。我猜你正在使用Resharper测试运行器,但这只是使用NUnit来执行实际的测试。我会建议删除resharper标签,并从问题的名称。很高兴你知道你的问题是什么。 – NerdFury 2011-03-24 18:47:15

回答

1

我想通了。

好的,所以第一个问题是Log4Net默默无力,因为我在Win7下编写的目录无法访问。我将Log4Net Appender中的目录更改为。\ nhibernate.log,它将其写入默认的Debug目录。

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender,log4net"> 
    <file value=".\nhibernate.log"/> 
    <appendToFile value="true"/> 
    <maximumFileSize value="100KB"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="5"/> 
    <layout type="log4net.Layout.PatternLayout,log4net"> 
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"/> 
    </layout> 
</appender> 

此外,我不得不在测试夹具像下面仍然初始化log4net的。

[SetUp] 
    public void Setup() 
    { 
     log4net.Config.XmlConfigurator.Configure(); 
    } 
3

我只是用log4net.Config.BasicConfigurator.Configure();其记录到控制台。不需要额外的配置或文件。