我有一个log4net,它写下这样的条目:
<conversionPattern value="[%date{yyyy-MM-dd HH:mm:ss}] [%property{machineName}] [%property{pid}] [%thread] [%-5level]: %message%newline"/>除了运行单元测试之外,一切都运行得很好。如果我不模拟记录器,并且测试使用真实的对象,那么我得到的不是threadId,而是
Agent: adapter run thread for test 'Log4NetLogger_TestLoggingMachineNamePrinted' with id '84e27809-f2b8-45b4-a2e1-ce305d20bc0c'因此,很明显,当log4net在测试运行器中使用时,它会感到困惑。如果我正常运行应用程序,那么我会得到一个正常的线程id。
有谁知道解决这个问题的办法吗?我正在使用MSTest。MSTest测试运行器和R#测试运行器具有相同的行为。
提前感谢您阅读我的问题。
乔治
发布于 2012-05-31 15:07:18
在单元测试项目中添加对log4net的引用可能会做到这一点(请参阅this answer)。
话虽如此,在这种情况下您可能不需要日志记录(除非这些是真正的集成测试),因此最好使用Stub而不是真正的记录器对象。
https://stackoverflow.com/questions/10820506
复制相似问题