Текстовый вывод 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. Как я должен это делать?

person BanksySan    schedule 26.01.2017    source источник


Ответы (1)


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

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

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

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

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

Чтобы просмотреть сообщения на данный момент, используйте средство запуска консоли NUnit 3.

person Charlie    schedule 26.01.2017
comment
Спасибо, Чарли. Я использую последние версии обоих (хотя я еще раз проверю это, когда вернусь в офис). - person BanksySan; 27.01.2017