UWAGA: Oryginalna odpowiedź poniżej powinna działać dla każdej wersji VS do VS2012. Wygląda na to, że VS2013 nie ma już okna wyników testu. Zamiast tego, jeśli potrzebujesz danych wyjściowych specyficznych dla testu, możesz użyć sugestii @ Stretch, Trace.Write()aby zapisać dane wyjściowe w oknie Output.
Console.WriteMetoda nie pisać do „konsoli” - pisze na to, co jest podłączone do standardowego uchwytu wyjścia dla procesu. Podobnie Console.Readodczytuje dane wejściowe z tego, co jest podłączone do standardowego wejścia.
Po uruchomieniu testu jednostkowego za pomocą VS2010 standardowe wyjście jest przekierowywane przez wiązkę testową i przechowywane jako część wyjścia testowego. Można to zobaczyć, klikając prawym przyciskiem myszy okno Wyniki testu i dodając kolumnę o nazwie „Wyjście (StdOut)” do ekranu. To pokaże wszystko, co zostało napisane na stdout.
Państwo mogłoby ręcznie otworzyć okno konsoli, przy użyciu P / Invoke jak @ sinni800 mówi. Z przeczytania AllocConsoledokumentacji wynika, że funkcja zresetuje się stdini stdoutobsługuje wskazanie nowego okna konsoli. (Nie jestem tego w 100% pewien; wydaje mi się, że trochę źle, jeśli przekierowałem już stdoutsystem Windows, aby ukraść to ode mnie, ale nie próbowałem).
Ogólnie jednak uważam, że to zły pomysł; jeśli wszystko, do czego chcesz użyć konsoli, to zrzucić więcej informacji o teście jednostkowym, dane wyjściowe są dla Ciebie. Nie przestawaj korzystać z Console.WriteLinetego, co robisz, a po zakończeniu sprawdź wyniki w oknie Wyniki testu.