ターミナル テスト レポーターは、ターミナル (コンソール) に報告する状態と進行状況の組み込みの実装です。 これはコア部品であるMicrosoft.Testing.Platform (MTP) に含まれており、追加の NuGet パッケージは必要ありません。
出力モード
使用可能な出力モードは 2 つあります。
Normalの場合、出力にはバナーが含まれており、テストの完全な失敗、警告メッセージが報告され、実行の概要が書き込まれます。
を含む出力Detailed、Normalと同じですが、Passedテストも報告します。
ANSI
内部的には、 ANSI エスケープ コードを処理するターミナル機能を自動検出する 2 つの異なる出力フォーマッタがあります。
- ANSI フォーマッタは、ターミナルがエスケープ コードをレンダリングできる場合に使用されます。
- ANSI 以外のフォーマッタは、ターミナルがエスケープ コードを処理できない場合、
--no-ansiが使用されている場合、または出力がリダイレクトされるときに使用されます。
既定では、機能が自動検出されます。
進捗
進行状況インジケーターがターミナルに書き込まれます。 進行状況インジケーターには、合格したテスト、失敗したテスト、スキップされたテストの数が表示され、その後にテストされたアセンブリの名前、そのターゲット フレームワーク、アーキテクチャが表示されます。
進行状況バーは、選択したモードに基づいて書き込まれます。
- ANSI では、進行状況バーがアニメーション化され、画面の下部に固定され、500 ミリ秒ごとに更新されます。 テストの実行が完了すると、進行状況バーは非表示になります。
- ANSI 以外の場合、進行状況バーは 3 秒ごとに画面に書き込まれます。 進捗状況が出力に反映されます。
コンソールへの直接出力と進捗表示の再描画
進行状況バーをアニメーション化するために、ANSI 進行状況レンダラーはターミナル カーソルを制御し、画面の下部を繰り返し再描画します。 テスト フレームワークのキャプチャ パス外の stdout または stderr に直接書き込まれたテキストは、この再描画中に上書きまたは削除できます。 たとえば、アセンブリ レベルまたはセッション レベルのライフサイクル コード (Console.WriteLineやBefore(Assembly) フックなど) や拡張機能からのBefore(TestSession)呼び出しは、短時間点滅し、進行状況バーが更新されると消える可能性があります。
この動作は、 キャプチャされた テストごとの標準出力と標準エラーとは異なります。 テストの実行中に書き込む出力はフレームワークによってキャプチャされ、 --show-stdout と --show-stderrに従って表示されるため、進行状況バーで上書きされません。
コードをコンソールに直接書き込む必要があり、その出力を表示したままにする必要がある場合は、進行状況を無効にします (MTP 2.3.0 以降の--progress off 、または以前のバージョンの --no-progress )。 または、ANSI (MTP 2.3.0 以降で--ansi off 、または以前のバージョンでは --no-ansi ) を無効にして、ANSI 以外の進行状況出力を使用します。この出力では、再描画ではなく新しい行が追加され、前の直接出力は上書きされません。
オプション
| Option | MTP バージョン | [説明] |
|---|---|---|
--no-progress |
— | 画面への進行状況の報告を無効にします。
--progress offを優先して MTP 2.3.0 で非推奨になりました。 |
--progress |
2.3.0 | 進行状況を表示するかどうかを制御します。 有効な値は、 auto (既定値)、 on ( true、 enable、 1も受け入れる)、および off ( false、 disable、 0も受け入れます)。 |
--no-ansi |
— | ANSI エスケープ文字の画面への出力を無効にします。 |
--ansi |
2.3.0 | ANSI エスケープ文字を出力するかどうかを制御します。 有効な値は、 auto (既定値)、 on ( true、 enable、 1も受け入れる)、および off ( false、 disable、 0も受け入れます)。 |
--output |
— | テスト結果の報告時の出力の詳細度を指定します。 有効値は Normal または Detailed です。 既定値は Normal です。 |
--show-stdout |
2.2.1 | キャプチャされたテストの標準出力を表示するタイミングを決定します。 有効な値は、 All、 Failed、および Noneです。 既定値は All です。 |
--show-stderr |
2.2.1 | キャプチャされたテストのエラー出力を表示するタイミングを決定します。 有効な値は、 All、 Failed、および Noneです。 既定値は All です。 |
注
MTP バージョン列のダッシュ (—) は、プラットフォームの最初のリリース以降に使用できるようになったため、特定のバージョンに関連付けられていないコア オプションをマークします。
注
MTP 2.3.0 以降では、MTP は LLM または AI ツール環境内で実行されていることを検出すると、スタートアップ バナーを抑制し、 --show-stdout と --show-stderr の既定値を All から Failed に変更してノイズを減らします。
.NET