ПРИМІТКА. Оригінальна відповідь, наведена нижче, повинна працювати для будь-якої версії 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таким, яким ви є, і перевіряйте результати виводу у вікні Результати тестування, коли це буде зроблено.