1

私のNUnit 2.6テストでは、Visual Studioの出力ウィンドウのtestsセクションでlog4netログメッセージを見ていました。私はNUnit 3.2に切り替えたので、表示されなくなりました。これは非常に不便です。私は検索してみましたが、私が思いついた最善の "ソリューション"は、SysInternalsのDebugViewユーティリティで見ることができるデバッグ文字列にすべてをダンプすることでした。または、実際にテストをデバッグすると、メッセージはDebugセクションに表示されます。しかし、私は本当にデバッグしていなくても、Visual Studioのログラインを見たいと思っています。何か案は?これは私の現在のlog4net設定です:log4netとNUnit 3.2とコンソール出力VS

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> 
    </configSections> 

    <log4net> 
    <appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender" > 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 

    <appender name="DebugAppender" type="log4net.Appender.DebugAppender" > 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 

    <root> 
     <level value="ALL" /> 
     <appender-ref ref="OutputDebugStringAppender" /> 
     <appender-ref ref="DebugAppender" /> 
    </root> 
    </log4net> 
</configuration> 

答えて

1

NUnit V2はlog4net出力をキャプチャし、NUnitイベントに変換しました。 3.0では、これはNUnitの範囲外であると判断し、log4netを使って表示しました。 NUnitのコンソールランナーの下で走っているとき、これは正常に動作しますが、VSアダプタの下では少し制限があります。

log4netの出力をNUnit出力イベントの形にするために使用できるアペンダーまたはエンジン拡張を提供することは合理的だと思います。それは誰かがそれを書くためにボランティアの問題です。これが重要だと思うならgithubに問題を提出するかもしれません。 ConsoleAppenderを使用するように設定

Console.SetOut(TestContext.Progress); 

のlog4net:あなたはこのコード行であることを行うことができますNUnitのv3での

+0

ありがとうございましたgithubで問題を提起しました。私はかなりの数の人々がそれについて不満を見たので、それは合理的に重要だと思う... – Andre

+0

問題をお寄せいただきありがとうございました...苦情の誰も1つを持っていません:-) – Charlie

+0

問題へのリンク - https://github.com/nunit/nunit/issues/1588 –

0

関連する問題