HINWEIS: Die ursprüngliche Antwort unten sollte für jede Version von VS bis VS2012 funktionieren. VS2013 scheint kein Testergebnisfenster mehr zu haben. Wenn Sie eine testspezifische Ausgabe benötigen, können Sie stattdessen den Vorschlag von @ Stretch verwenden Trace.Write()
, um die Ausgabe in das Ausgabefenster zu schreiben.
Die Console.Write
Methode schreibt nicht in die "Konsole", sondern in alles, was mit dem Standardausgabehandle für den laufenden Prozess verbunden ist. Console.Read
Liest in ähnlicher Weise Eingaben von allem, was mit der Standardeingabe verbunden ist.
Wenn Sie einen Komponententest über VS2010 ausführen, wird die Standardausgabe vom Testkabelbaum umgeleitet und als Teil der Testausgabe gespeichert. Sie können dies sehen, indem Sie mit der rechten Maustaste auf das Fenster Testergebnisse klicken und der Anzeige die Spalte "Ausgabe (StdOut)" hinzufügen. Dies zeigt alles, was in stdout geschrieben wurde.
Sie können ein Konsolenfenster manuell öffnen, indem Sie P / Invoke verwenden, wie @ sinni800 sagt. Nach dem Lesen der AllocConsole
Dokumentation wird die Funktion zurückgesetzt stdin
und stdout
behandelt, um auf das neue Konsolenfenster zu verweisen. (Da bin ich mir nicht 100% sicher. Es scheint mir irgendwie falsch zu sein, wenn ich stdout
Windows bereits umgeleitet habe , um es mir zu stehlen, aber ich habe es nicht versucht.)
Im Allgemeinen halte ich es jedoch für eine schlechte Idee; Wenn Sie die Konsole nur verwenden möchten, um weitere Informationen zu Ihrem Komponententest zu speichern, ist die Ausgabe für Sie da. Verwenden Console.WriteLine
Sie weiterhin so, wie Sie sind, und überprüfen Sie die Ausgabeergebnisse im Fenster Testergebnisse, wenn dies erledigt ist.