Запись вывода в реальном времени в окно или текстовую панель во время MSTEST - PullRequest
3 голосов
/ 13 августа 2011

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

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

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

1 Ответ

7 голосов
/ 13 августа 2011
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);
    }
}

Тест должен быть запущен из меню Test \ Debug \ Tests In Current Context . Параметр «Выполнить тесты» в контекстном меню правой кнопкой мыши не будет работать.

...