Log4net& NUnit:测试仅成功一次,后续测试失败,因为日志文件“由另一个进程使用”

时间:2013-10-08 07:00:59

标签: locking nunit log4net

我的开源.NET软件使用Log4net没有问题。

但是当我用NUnit测试它时,我在第二次测试中得到了以下错误。例如,如果我运行两次测试,它将在第一次成功并且第二次失败,无论测试如何:

  

System.IO.IOException:进程无法访问文件'C:\ Users \ win7pro32bit \ AppData \ Roaming \ cmissync \ debug_log.txt',因为它正由另一个进程使用。

日志文件由a static call to log4net.Config.XmlConfigurator.Configure(path)

创建

我想我应该以某种方式关闭TearDown中的日志文件,但我看不到任何log4net“关闭”方法。

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />添加到the log4net configuration可以解决问题,但是这个degrades performance,所以我更喜欢测试端解决方案,这对生产代码没有影响。

1 个答案:

答案 0 :(得分:0)

正如adrianbanks和Cole W在评论中所建议的那样,我真的不需要登录文件。

所以这解决了这个问题:

    [SetUp]
    public void Init()
    {
        log4net.Config.BasicConfigurator.Configure(new TraceAppender());
    }