ПРИМЕЧАНИЕ. Исходный ответ ниже должен работать для любой версии Visual Studio вплоть до Visual Studio 2012. Visual Studio 2013, похоже, больше не имеет окна результатов тестирования. Вместо этого, если вам нужен вывод, специфичный для теста, вы можете использовать предложение @ Stretch Trace.Write()
для записи вывода в окно вывода.
Console.Write
Метод не записывает на «консоли» - это пишет все , что зацепило до стандартного вывода рукоятки для процесса , запущенного. Точно так же Console.Read
считывает ввод с того, что подключено к стандартному вводу.
Когда вы запускаете модульный тест через Visual Studio 2010, стандартный вывод перенаправляется тестовой оснасткой и сохраняется как часть вывода теста. Вы можете увидеть это, щелкнув правой кнопкой мыши окно результатов теста и добавив на дисплей столбец с именем «Вывод (StdOut)». Это покажет все, что было написано на стандартный вывод.
Вы можете вручную открыть окно консоли, используя P / Invoke, как говорит sinni800 . Из прочтения AllocConsole
документации кажется, что функция будет сброшена stdin
и stdout
будет указывать на новое окно консоли. (Я не уверен в этом на 100%; мне кажется неправильным, если я уже перенаправил stdout
Windows, чтобы украсть его у меня, но я не пробовал.)
Но в целом я считаю, что это плохая идея; если все, что вы хотите использовать с помощью консоли, - это сбросить дополнительную информацию о своем модульном тесте, результат будет для вас. Продолжайте использовать, Console.WriteLine
как вы есть, и по завершении проверьте результаты в окне «Результаты теста».