1. ホーム
  2. c#

[解決済み] MSTestテスト実行中にConsole.Outに書き込む方法

2022-08-14 13:21:24

質問

コンテキスト。

私たちのWebアプリケーションのファイルアップロード機能で問題を報告しているユーザーがいます。それは時々起こるだけで、特別なパターンもありません。私たちは長い間それを解明しようとし、役立つと思われるあらゆる場所にデバッグ情報を追加し、ログをクロールするなどしてきましたが、再現することも解明することもできませんでした。

問題です。

現在、MSTestとWatiNを使って、失敗すると思われる操作を多数回(数百回)繰り返して、これを再現しようとしています。テストがループの中でどれくらいになったかを知る手がかりを持つために、私は次のようなものを印刷したいと思います。

Console.WriteLine(String.Format("Uploaded file, attempt {0} of {1}", i, maxUploads));

しかし、これは出力ウィンドウに表示されません。これで、テスト結果にコンソール出力が表示されることがわかりました(同様に Debug.Writeline などから出力されるもの) がありますが、これが利用できるのは の後に が終了するまで利用できません。そして、何百もの繰り返しがある私のテストはかなり時間がかかる可能性があるので、私はそれがどこまで到達したかを知りたいのです。

質問です。

出力ウィンドウにコンソール出力を得ることができる方法はありますか? の間に にコンソール出力を得る方法はありますか?

どのように解決するのですか?

コンソール出力が表示されないのは、バックエンドのコードがテストのコンテキストで実行されていないためです。

おそらく Trace.WriteLine (System.Diagnostics 内) を使用し、ファイルに書き込むトレース リスナーを追加する方が良いでしょう。

このトピックは MSDN から は、これを行う方法を示しています。


マーティ・ニールのコメントとデイブ・アンダーソンのコメントによると。

using System;
using System.Diagnostics;

...

Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
// or Trace.Listeners.Add(new ConsoleTraceListener());
Trace.WriteLine("Hello World");