Запись вывода в реальном времени в окно или текстовую панель во время MSTEST

Я использую Trace для ведения журнала, и я бы хотел, чтобы выходные данные журнала отображались в окне или на текстовой панели где-нибудь в Visual Studio во время теста.

Как проще всего этого добиться? Debug.Print() утверждения появляются только в конце теста. Попытка открыть окно консоли кажется неудачной (это не консольное приложение, и я не могу получить правильный дескриптор).

Я использую свой собственный статический класс журнала, поэтому мне не нужно использовать Trace для этого.


person Robert Harvey    schedule 12.08.2011    source источник


Ответы (1)


System.Diagnostics.Debug.WriteLine()

будет захвачен окном вывода Visual Studio, если вы работаете в режиме отладки, и это не должно зависеть от стадии выполнения теста (начало / конец теста), поэтому его следует отслеживать в выводе отладки сразу после выполнения.

Такой вывод также может быть захвачен и отфильтрован с помощью таких инструментов, как DbgView

РЕДАКТИРОВАТЬ: ответ на комментарий

Я создал тест MSTest и могу наблюдать в окне отладки, как каждая новая строка появляется каждую секунду: (В окне вывода вы можете выбрать между Build/Debug, убедитесь, что вы выбрали вариант Debug в раскрывающемся списке)

[TestMethod]
public void TestMethod1()
{
    int i = 10;

    while(i-- > 0)
    {
        Thread.Sleep(1000);
        Debug.WriteLine("Step #" + i);
    }
}

Тест необходимо запускать из меню Тест \ Отладка \ Тесты в текущем контексте. Параметр «Выполнить тесты» из контекстного меню, вызываемого правой кнопкой мыши, не работает.

person sll    schedule 12.08.2011
comment
Да, но не в реальном времени, насколько я могу судить. Я получаю результат только после завершения теста. - person Robert Harvey; 13.08.2011
comment
Вы называете это Debug Window.. Какое у него точное имя и где в меню VS я могу его найти? - person Robert Harvey; 13.08.2011
comment
Меню Visual Studio: Вид - ›Вывод -› Выберите параметр Показать вывод отладки. - person sll; 13.08.2011
comment
Ага, нет. Для тестового проекта задана отладка. Все строки записи появляются в трассировке результатов тестирования отладки, а zippo - в окне вывода / отладки. - person Robert Harvey; 13.08.2011
comment
Там идет. Похоже, вам действительно нужно Test/Debug/Tests in Current Context; ты не можешь просто Right Click/Run Tests. - person Robert Harvey; 13.08.2011
comment
Похоже, вы решили эту проблему, но, к сожалению, я не понимаю, что вы имеете в виду о Test.Debug / Tests в текущем контексте, действительно интересно, что там происходит - person sll; 13.08.2011