1

In meinen NUnit 2.6-Tests habe ich log4net-Protokollmeldungen im Ausgabefenster von Visual Studio im Abschnitt Tests angezeigt. Seit ich auf NUnit 3.2 umgestiegen bin, werden sie nicht mehr angezeigt, was sehr unpraktisch ist. Ich habe versucht zu suchen und die beste "Lösung", die ich kam, war alles in Debug-Strings, die entweder über DebugView-Dienstprogramm von SysInternals angezeigt werden kann oder wenn ich tatsächlich einen Test debuggen - dann werden die Nachrichten im Abschnitt Debug angezeigt. Allerdings würde ich gerne meine Log-Zeilen in Visual Studio sehen, auch wenn nicht debuggen. Irgendwelche Ideen? Visual Studio 2015 ist meine aktuelle log4net config:log4net und NUnit 3.2 und Konsolenausgabe in 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> 

Antwort

1

NUnit V2 erfasst log4net Ausgang und übersetzt sie in ein NUnit Ereignis. Für 3.0 entschieden wir, dass dies für NUnit nicht möglich war und übertrugen es auf log4net, um Dinge anzuzeigen. Wenn es unter dem NUnit-Konsolen-Runner läuft, funktioniert das gut, aber es stellt sich heraus, dass es eine kleine Einschränkung unter dem VS-Adapter darstellt.

Ich denke, es wäre vernünftig für uns, entweder einen Appender oder eine Engine-Erweiterung zu liefern, die Sie verwenden könnten, um die log4net-Ausgabe in Form eines NUnit-Ausgabeereignisses zu erhalten. Es ist eine Frage von jemandem, der sich freiwillig meldet, es zu schreiben. Wenn Sie das für wichtig halten, können Sie ein Problem auf github stellen.

+0

Danke, habe das Problem in GitHub angesprochen. Ich denke, es ist einigermaßen wichtig, weil ich einige Leute gesehen habe, die sich darüber beschweren ... – Andre

+0

Danke für das Problem ... keiner der Meckerer hat einen rein bekommen. :-) – Charlie

+0

Link zur Ausgabe - https://github.com/nunit/nunit/issues/1588 –

0

Für NUnit v3 können Sie mit dieser Codezeile tun:

Console.SetOut(TestContext.Progress); 

Log4Net konfiguriert ConsoleAppender zu verwenden.