テスト レポート

これらの機能では、各セクションで説明されているように、追加の NuGet パッケージをインストールする必要があります。

ヒント

Microsoft.Testing.Platform.MSBuild (MSTest、NUnit、xUnit ランナーによって推移的に含まれる) を使用する場合、これらの拡張機能は NuGet パッケージをインストールするときに自動的に登録されます。コードの変更は必要ありません。 この記事で指定されている手動登録は、 <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>設定して自動生成されたエントリ ポイントを無効にした場合にのみ必要です。

レポート ファイル名

すべてのレポート拡張機能は、 --results-directory オプションで設定できるテスト結果ディレクトリにファイルを書き込みます。 名前をオーバーライドするには、一致する --report-*-filename オプションを使用します。 各レポート セクションには、そのレポートの既定の名前が一覧表示されます。

ファイル名には、テスト結果ディレクトリ内に留める相対パスを含めることができます。また、次の置換項目 (プレースホルダー) を使用できます。

プレースホルダー [説明]
{asm} エントリ アセンブリ名。使用できない場合は unknown
{tfm} 実行時に検出されたターゲット フレームワーク モニカー ( net9.0など)。
{arch} x64x86arm64などのプロセス アーキテクチャ。
{pname} プロセス名。
{pid} プロセス ID。
{time} 高精度タイムスタンプ。

たとえば、 --report-trx-filename "{asm}_{tfm}_{arch}.trx" は既定の TRX 名を再現します。

プレースホルダー名は大文字と小文字を区別し、小文字を使用します。 レポート ファイル名のプレースホルダー のサポートは、バージョン 2.3.0 以降の MTP で利用できます。

Visual Studio テスト レポート (TRX)

Visual Studioテスト結果ファイル (または TRX) は、テスト結果を発行するための既定の形式です。 この拡張機能には、 Microsoft.Testing.Extensions.TrxReport NuGet パッケージが必要です。

手動登録

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddTrxReportProvider();

手動登録を使用する場合は、TRX レポート プロバイダーを最後に登録します。 現在の実装は登録順序に依存するため、他のすべての拡張機能の後に登録すると、すべてのテスト データが確実にキャプチャされます。

バージョン 1.9.0 以降の MTP で使用できる TRX レポートには、テスト Description フィールドが含まれています。

MTP バージョン 2.3.0 以降で使用できます。TRX の結果は、実行の進行に応じてディスクにストリーム配信されます。 テスト ホストがクラッシュした場合、TRX ファイルはクラッシュ前に収集された結果を保持します。

オプション

Option [説明]
--report-trx TRX レポートを生成します。
--report-trx-filename 生成された TRX レポートの名前。 MTP 2.3.0 以降、既定値は確定的な {asm}_{tfm}_{arch}.trx 形式です。MTP 2.3.0 より前の既定値は <UserName>_<MachineName>_<yyyy-MM-dd_HH_mm_ss.fffffff>.trx。 名前をカスタマイズするには、「 レポート ファイル名」を参照してください。

レポートは、コマンド ライン引数を使用して指定できる既定の --results-directory フォルダー内に保存されます。

HTML レポート

HTML レポートは、テスト セッション用の対話型の自己完結型 HTML ファイルを作成します。 この拡張機能には、Microsoft.Testing.Extensions.HtmlReport NuGet パッケージが必要です。

バージョン 2.3.0 以降の MTP で使用できます。 この拡張機能は試験段階であり、オプションと出力形式は将来のバージョンで変更される可能性があります。

手動登録

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddHtmlReportProvider();

オプション

Option [説明]
--report-html HTML レポートを生成します。
--report-html-filename 生成された HTML レポートの名前。 値は .htmlで終わる必要があります。 既定値は {asm}_{tfm}_{arch}.html です。 名前をカスタマイズするには、「 レポート ファイル名」を参照してください。 --report-html が必要です。

JUnit レポート

JUnit レポートは、テスト セッション用の JUnit 互換 XML ファイルを作成します。 この拡張機能には、Microsoft.Testing.Extensions.JUnitReport NuGet パッケージが必要です。

バージョン 2.3.0 以降の MTP で使用できます。 この拡張機能は試験段階であり、オプションと出力形式は将来のバージョンで変更される可能性があります。

手動登録

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddJUnitReportProvider();

オプション

Option [説明]
--report-junit JUnit XML レポートを生成します。
--report-junit-filename 生成された JUnit XML レポートの名前。 値は .xmlで終わる必要があります。 既定値は {asm}_{tfm}_{arch}.xml です。 名前をカスタマイズするには、「 レポート ファイル名」を参照してください。 --report-junit が必要です。

CTRF レポート

CTRF レポートは、テスト セッションに 共通テスト レポート形式 を使用する JSON ファイルを作成します。 この拡張機能には Microsoft.Testing.Extensions.CtrfReport NuGet パッケージが必要です。

バージョン 2.3.0 以降の MTP で使用できます。 この拡張機能は試験段階であり、オプションと出力形式は将来のバージョンで変更される可能性があります。

手動登録

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddCtrfReportProvider();

オプション

Option [説明]
--report-ctrf CTRF JSON レポートを生成します。
--report-ctrf-filename 生成された CTRF JSON レポートの名前。 値は .jsonで終わる必要があります。 既定値は <UserName>_<MachineName>_<assembly>_<tfm>_<timestamp>.ctrf.json です。 名前をカスタマイズするには、「 レポート ファイル名」を参照してください。 --report-ctrf が必要です。

Azure DevOps レポート

Azure DevOps レポート プラグインは、GitHubでコードをホストし、Azure DevOpsのビルド エージェントでビルドを行う開発者のために、テストの実行を強化します。 エラーに追加情報が追加され、GitHub PR でエラーが直接表示されます。

 PR ファイル ビューの GitHubエラー注釈

この拡張機能には、 Microsoft.Testing.Extensions.AzureDevOpsReport NuGet パッケージが必要です。

手動登録

var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHost.AddAzureDevOpsProvider();

オプション

Option MTP バージョン [説明]
--report-azdo 1.9.0 Azure DevOps レポート ジェネレーターを有効にします。 エラーと警告は、Azure DevOps理解できる形式で出力に書き込まれます。
--report-azdo-severity 1.9.0 報告されたイベントに適用する重大度。 有効な値は error (既定値) と warningです。
--report-azdo-flaky-history 2.3.0 クエリAzure DevOps過去 N 日間のテスト結果履歴 (1 ~ 90) で、報告されたエラーにフラキネス コンテキストで注釈を付けます。 --report-azdo が必要です。
--report-azdo-demote-known-flaky 2.3.0 Azure DevOps履歴ウィンドウで十分に不安定なエラー (既定のしきい値は 25%) をエラーから警告に降格します。 --report-azdo--report-azdo-flaky-historyが必要です。
--report-azdo-quarantine-file 2.3.0 隔離されたテストの完全修飾名またはグロブ パターンを列挙したテキスト ファイルへのパス。 一致するエラーは警告として報告されます。 --report-azdo が必要です。
--report-azdo-summary 2.3.0 テストの実行の最後に Markdown ジョブの概要を書き込み、 ##vso[task.uploadsummary]経由でアップロードします。 省略可能なファイル パス引数は、既定の場所 ({testResultsDir}/azdo-summary-{tfm}.md) をオーバーライドします。 --report-azdo が必要です。
--report-azdo-stackframe-filter 2.3.0 各スタック フレームの完全修飾型プレフィックスに一致する正規表現パターンを追加します。これは、注釈を付けるために拡張機能がユーザーの呼び出しサイトを見つけたときにスキップされます。 このオプションは繰り返し可能で、最大 16 パターンで、各パターンは 500 ミリ秒の一致タイムアウトでコンパイルされます。 これらのパターンは、拡張機能の組み込みの MSTest アサーション実装プレフィックスに追加されます。 --report-azdo が必要です。
--report-azdo-upload-artifacts 2.3.0 テスト結果ファイルをアップロードしたり、ビルド タグをAzure DevOpsに追加したりします。 有効な値は、 off (既定値)、 tags-onlyfiles、および allです。
--report-azdo-upload-artifact-include 2.3.0 テスト結果ディレクトリに対する glob パターンを使用して、Azure DevOps成果物のアップロードにファイルを含めます。 既定値は **/* です。 --report-azdo-upload-artifactsoff以外の値である必要があります。
--report-azdo-upload-artifact-exclude 2.3.0 テスト結果ディレクトリに対する glob パターンを使用して、Azure DevOps成果物のアップロードからファイルを除外します。 --report-azdo-upload-artifactsoff以外の値である必要があります。
--report-azdo-upload-artifact-name 2.3.0 Azure DevOps成果物コンテナー名をオーバーライドします。 既定値は TestResults_{assemblyName}_{tfm} です。 --report-azdo-upload-artifactsoff以外の値である必要があります。
--publish-azdo-test-results 2.3.0 テスト結果を Azure DevOps Tests タブに公開します。
--publish-azdo-run-name 2.3.0 ライブ テスト結果の発行用のカスタム Azure DevOpsテスト実行名を設定します。 --publish-azdo-test-results が必要です。

MTP バージョンの列には、各オプションが安定したビルドで最初に使用できるようになった MTP リリースが一覧表示されます。 Azure DevOps拡張機能自体は、MTP 1.9.0 で--report-azdo--report-azdo-severityで安定しました。残りのオプションは MTP 2.3.0 で追加されました。

拡張機能は、 TF_BUILD 環境変数を確認することで、継続的インテグレーション (CI) 環境で実行されていることを自動的に検出します。

GitHub Actions レポート

GitHub Actions レポートは GitHub Actions ネイティブのワークフロー コマンドを出力するため、テスト実行時にランナー上で優れたエクスペリエンスを実現します。これには、アセンブリごとのログ グループ、失敗およびスキップされたテストの注釈(ワークフローの Annotations タブに表示され、ソースの場所を解決できる場合はプル リクエストの Files changed 差分にも表示)、GITHUB_STEP_SUMMARY が参照するファイルに追記される Markdown のジョブ サマリー、および低速なテストの通知が含まれます。

拡張機能は、実行がGitHub Actions (GITHUB_ACTIONS環境変数がtrue) にあり、--report-gh スイッチが設定されている場合にのみアクティブになります。それ以外の場合は何も実行されません。 アクティブな場合、各機能は既定で有効になり、 --report-gh-* オプションを使用して個別にオフにすることができます。

バージョン 2.3.0 以降の MTP で使用できます。 この拡張機能は試験段階であり、オプションと出力形式は将来のバージョンで変更される可能性があります。

手動登録

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddGitHubActionsProvider();

オプション

Option MTP バージョン [説明]
--report-gh 2.3.0 GitHub Actions レポート ジェネレーターを有効にして、テスト実行でワークフロー コマンドを出力できるようにします。 実行がGitHub Actions上にある必要があります。
--report-gh-groups 2.3.0 アセンブリごとのログ グループを有効または無効にします。 有効な値は on (既定値) と offです。 --report-gh が必要です。
--report-gh-annotations 2.3.0 失敗したテストとスキップされたテストの注釈を有効または無効にします。 有効な値は on (既定値) と offです。 --report-gh が必要です。
--report-gh-step-summary 2.3.0 GITHUB_STEP_SUMMARYによって参照されるファイルへの Markdown ジョブの概要の書き込みを有効または無効にします。 有効な値は on (既定値) と offです。 --report-gh が必要です。
--report-gh-slow-test-notices 2.3.0 低速テスト通知を有効または無効にします。 有効な値は on (既定値) と offです。 --report-gh が必要です。
--report-gh-slow-test-threshold 2.3.0 低速テストの通知が出力されるまでにテストを実行できる時間。 90s2m1.5hなどの単位サフィックスを持つ秒数または値を受け取ります。 既定値は 60s です。 --report-gh が必要です。