Я использую xUnit с тестовым бегуном ReSharper и плагином resharper xUnitContrib.Использование ReSharper, как показать вывод отладки во время длительной модульной проверки?
Когда у меня есть длительный тест, я бы хотел, чтобы вывести индикатор прогресса в окно Output Test.
Я пробовал Debug.WriteLines
, Trace.WriteLine
и Console.WriteLine
. Все из них имеют одинаковое поведение - ничто не отображается в окне вывода до завершения теста.
Например:
[Fact]
public void Test()
{
Debug.WriteLine("A");
Trace.WriteLine("B");
Console.WriteLine("C");
Thread.Sleep(10000);
}
Тест не показывает выход до тех пор, пока 10 секунд прошло, и тест завершается. Как мне получить выход на этом пути?
UPDATE 1
Я попытался также с MSTest и NUnit. NUnit - единственный, который показывает выход на этом пути.
MSTest и XUnit не возвращают никакого выхода до завершения теста. Странная часть является то, что в то время как тест выход XUnit и NUnit выглядит следующим образом:
A
B
C
MSTest результат выглядит следующим образом:
C
Debug Trace:
A
B
Учитывая все эти варианты, я думаю, что ответ, что оно зависит от реализации тестового бегуна, чтобы решить, как и когда выводить. Кто-нибудь знает, можно ли настроить тестовый бегун XUnit?
UPDATE 2
Я думаю, что это должно быть дефицит в xUnitContrib. Добавлено в их CodePlex issue tracker.
Debug.WriteLine() отлично работает отлично, когда я в режиме отладки. Поэтому, если вы хотите войти в систему в общем виде, я рекомендую ответить brenton – derape
@derape - Нет, это не работает с xunit. Выходной сигнал не появляется до завершения теста. –
Вижу, я не играл с XUnit - только NUnit. И протоколирование NUnit работает по потокам отладки ... – brenton