我有log4net,它写的条目如下:
<conversionPattern value="[%date{yyyy-MM-dd HH:mm:ss}] [%property{machineName}] [%property{pid}] [%thread] [%-5level]: %message%newline"/>
除了运行单元测试外,一切正常。如果我不模拟记录器并且测试使用真实对象,那么我将获得
而不是threadIdAgent: adapter run thread for test 'Log4NetLogger_TestLoggingMachineNamePrinted' with id '84e27809-f2b8-45b4-a2e1-ce305d20bc0c'
很明显,log4net在从测试运行器中使用时会感到困惑。如果我正常运行应用程序,那么我得到一个正常的线程ID。
任何人都知道解决方法吗?我正在使用MSTest。 MSTest测试运行器和R#测试运行器也会出现相同的行为。
提前感谢您阅读我的问题。
乔治
答案 0 :(得分:0)
在单元测试项目中添加对log4net的引用可能会有所帮助(参见this answer)。
话虽如此,你可能不需要在这种情况下登录(除非这些是真正的集成测试),所以最好使用Stub而不是真正的记录器对象。