Log4net&NUnit:测试只成功一次,后续测试失败,因为日志文件"used by another process"



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

但是当我使用 NUnit 测试它时,我在第二次测试中出现以下错误。例如,如果我运行测试两次,无论测试如何,它都会第一次成功,第二次失败:

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

日志文件由对 log4net 的静态调用创建。Config.XmlConfigurator.Configure(path)

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

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />添加到 log4net 配置可以解决问题,但这会降低性能,因此我更喜欢对生产代码没有影响的测试端解决方案。

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

所以这解决了问题:

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

相关内容

最新更新