1

В моих тестах NUnit 2.6 я использовал сообщения журнала log4net в окне вывода Visual Studio в разделе «Тесты». Поскольку я переключился на NUnit 3.2, они больше не отображаются, что очень неудобно. Я попробовал поиск, и лучшее «решение», которое я придумал, заключалось в том, чтобы сбрасывать все в строки отладки, которые можно просматривать либо с помощью утилиты DebugView из SysInternals, либо когда я действительно отлаживаю тест, - тогда сообщения отображаются в разделе «Отладка». Тем не менее, мне бы очень хотелось увидеть мои строки журнала в Visual Studio, даже если они не отлаживаются. Есть идеи? Visual Studio 2015. Это мой текущий 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.

+0

Спасибо, подняли вопрос в github. Я думаю, что это очень важно, потому что я видел немало людей, жалующихся на это ... – Andre

+0

Спасибо за вопрос ... ни один из жалобщиков не получил один из них. :-) – Charlie

+0

Ссылка на вопрос - https://github.com/NUnit/NUnit/вопросы/1588 –

0

Для NUnit v3 вы можете сделать это с помощью этой строки кода:

Console.SetOut(TestContext.Progress); 

Log4Net настроен на использование ConsoleAppender.