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 に答える