2011-01-16 18 views
0

MSTestを使用してC#でいくつかのテストを実行しています。私がテストしているルーチンの1つが新しいプロセスを作成し、そのプロセスはしばしば出力stdoutをダンプします。私はテストでその出力をキャプチャしたいと思います。テストが失敗したかどうかを確認することは重要ではありませんが、テストが失敗した理由を理解する上で非常に役立ちます。これどうやってするの?mstestのテスト中にサブプロセスからstdoutを取得する

詳細残念ながら、私はプロセスを作成しているコードに触れることはできません。さらに悪いことに、C++であり、C++/CLIラッパーを介して呼び出されています。 .NETコンソールアプリケーション(C#で)を作成すると、キャプチャしたいサブプロセスのstdoutが、コールするときコンソールアプリケーションのウィンドウに表示されます。 MSTestコンテキストで同じコードを実行すると、サブプロセスの作成によって新しいウィンドウがポップアップされ、サブプロセスはそのウィンドウでその出力をダンプします。可能な限り、私がキャプチャしたい出力です。

多くの感謝!

答えて

0

テスト結果をダブルクリックすると、stdoutも含むレポートページが表示されます。Redirecting stdout of one process object to stdin of another子プロセスのstdoutをリダイレクトする方法を教えてください。テスト(つまり、Console.Write()を呼び出します)

+0

ありがとうございました!残念ながら、それは動作しません - 私はプロセスの作成コマンドを制御する必要はありません。 Windowsプロセスとコンソールプロセスにはいくつかの違いがあり、stdoutと関係しています。だから私がする必要があるのは、有効な標準出力があるかどうかを検出することです。何もしなければ。 b)それが作成されていない場合はスレッドによって読み込ませ、c)読み込まれたものはすべてConsole.WriteLineにコピーする必要があります。 – Gordon

関連する問題