2017-01-26 22 views
1

У меня есть следующий тест: (?)Nunit выводимый текст не ведет

[Test] 
public void LogTest() 
{ 
    TestContext.WriteLine("Hello"); 
    TestContext.Error.WriteLine("Ergh"); 
    TestContext.Out.WriteLine("Out"); 
    TestContext.Progress.WriteLine("Is this progress?");  
} 

Следует выписывать в журнал NUnit.

Когда я запускаю его с помощью Resharper, я получаю только строку Hello и Out, отображаемую в окне «Сеансы тестовых сеансов».

Когда он запускается с помощью NCrunch, я вообще не получаю никакого вывода.

  1. Почему это?
  2. Как я должен это делать?

ответ

2

Ни одно из утверждений о записи NUnit не записывает нигде! Они превращаются в сообщения, которые затем обрабатываются бегуном как события. Выход отправляется туда, куда бегун решает, что он должен идти.

Это даже верно для Console.Write в тесте, поскольку NUnit перехватывает его.

Для бегунов, которые вы используете:

  • Убедитесь, что у вас последняя Resharper. TestContext.Error и TestContext.Progress создают новое сообщение, которое ваша версия может не обрабатывать. Обратитесь к людям JetBrains, чтобы узнать, что они поддерживают.

  • Для NCrunch я также проверил версию, которую у вас есть. NCrunch отслеживает NUnit очень близко, и я был бы удивлен, если последняя версия не справится со всем.

Чтобы видеть сообщения на данный момент, используйте бегун NUnit3-console.

+0

Спасибо, Чарли. Я использую последние версии обоих (хотя я дважды проверю это, когда вернусь в офис). – BanksySan