使用 log4net 和 xUnit

Dan*_*ams 6 c# log4net xunit

我们有一些代码向 log4net 发出消息,并且希望在 xUnit 下对该代码运行测试时看到发出相同的消息。

有没有办法告诉 xUnit 启动 log4net?我已经修改了 xunit.console 的 .config 文件,它运行良好,但没有任何日志记录活动的迹象。

stu*_*rtd 0

一般在单元测试log4net日志调用时,会这样使用MemoryAppender :

private MemoryAppender testAppender;

[SetUp]
public void SetUp()
{
    testAppender = new MemoryAppender();
    BasicConfigurator.Configure(testAppender);

    // etc    
}

[Test]
public void TestLogging()
{
   // etc

   var events = testAppender().GetEvents();
   Assert.AreEqual(1, events.Count()); 
}
Run Code Online (Sandbox Code Playgroud)

  • 该代码将允许测试是否生成日志条目,但是如果我正确理解 OP,他只想在控制台窗口中查看输出。 (3认同)