0

我有 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# 测试运行程序会发生相同的行为。

提前感谢您阅读我的问题。

乔治

4

1 回答 1

0

在单元测试项目中添加对 log4net 的引用可能会起到作用(请参阅此答案)。

话虽如此,在这种情况下您可能不需要记录(除非这些确实是集成测试),因此最好使用存根而不是真正的记录器对象。

于 2012-05-31T07:07:17.753 回答