Microsoft.Testing.Platform (MTP) を使用した dotnet テスト

この記事は、10 SDK 以降のバージョン.NET: ✔️ に適用されます

名前

dotnet test - MTP で単体テストを実行するために使用されるテスト ドライバーを.NETします。

概要

dotnet test
    [<PROJECT_OR_TRAVERSAL_PATH>]
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>]
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <NUMBER>]
    [--config-file <CONFIG_FILE>]
    [--results-directory <RESULTS_DIRECTORY>]
    [--results-directory-layout <flat|per-module>]
    [--diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>]
    [--minimum-expected-tests <NUMBER>]
    [--maximum-failed-tests <NUMBER>]
    [--timeout <DURATION>]
    [-e|--environment <NAME="VALUE">]
    [-a|--arch <ARCHITECTURE>]
    [--artifacts-path <ARTIFACTS_DIR>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [--use-current-runtime|--ucr]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-dependencies]
    [--no-restore]
    [--nologo|--no-logo|--no-banner]
    [--no-ansi]
    [--no-progress]
    [--no-artifact-post-processing]
    [--output <VERBOSITY_LEVEL>]
    [--show-test-results <OUTCOME>]
    [--list-tests [text|json]]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [--device <DEVICE_ID>]
    [--list-devices]
    [--collect-test-map]
    [--affected-tests]
    [<args>...]

dotnet test -h|--help

Description

MTP を使用すると、 dotnet test は VSTest よりも高速に動作します。 テスト関連の引数は、テスト projectに登録されている拡張機能に関連付けられているため、修正されなくなりました。 さらに、MTP では、テストの実行時に globbing フィルターがサポートされます。 詳細については、 MTP を参照してください。

Important

拡張機能固有のオプションは MTP には組み込まれません。 対象となる各テスト アプリケーションでは、オプションを提供する拡張機能を登録する必要があります。 拡張機能の NuGet パッケージを直接追加するか、パッケージを含むテスト SDK 構成またはプロファイルを使用します。 それ以外の場合、オプションが認識されないため、終了コード 5 でテストの実行が失敗します。 dotnet test --help実行して、選択したテスト アプリケーションで使用できるオプションを確認し、シナリオ別の拡張機能オプションを参照してオプションのパッケージを見つけます。

Warnung

global.json経由で MTP をオプトインすると、dotnet testはすべてのテスト プロジェクトで MTP を使用することが想定されます。 いずれかのテスト プロジェクトで VSTest が使用されている場合はエラーです。

バージョンの要件

dotnet testの MTP モードには、.NET 10 SDK と MTP 1.7 以降が必要です。 .NET 10 の後に追加されたオプションには、次のセクションで個々の SDK バージョンの要件があります。 一部のオプションでは、SDK が完全な実行を調整し、各テスト アプリケーションが対応する機能を実装するため、新しい MTP パッケージも必要です。

暗黙的な復元

復元を必要とするすべてのコマンド (dotnet restore、dotnet new、dotnet build、dotnet run、dotnet test、dotnet publish など) によって暗黙的に実行されるため、dotnet pack を実行する必要がなくなりました。 暗黙的な復元を無効にするには、--no-restore オプションを使用します。

dotnet restore コマンドは、明示的な復元が理にかなっている特定のシナリオ ( Azure DevOps Services または復元がいつ行われるかを明示的に制御する必要があるビルド システムなど) で引き続き役立ちます。

NuGet フィードの管理方法については、dotnet restore のドキュメントをご覧ください。

Important

--no-restoreを使用してプロジェクトまたはソリューションを実行する場合は、復元によって生成されたプロジェクトの状態を obj フォルダーに保持し、一致するグローバル パッケージ フォルダーを使用できるようにします。 テスト フレームワークとプラットフォーム パッケージのインポートでは、MTP テスト アプリケーションを識別するために使用 dotnet test MSBuild プロパティが設定されます。 --no-build オプションは、--no-restoreも意味します。 テスト環境にビルドされたテスト アプリケーションが含まれているが、プロジェクトの復元状態が含まれていない場合は、代わりに --test-modules を使用します。 詳細については、No test projects were foundを参照してください。

オプション

注

一度に使用できるオプションは、--project、--solution、または --test-modules のいずれかです。 これらのオプションを組み合わせることはできません。 また、 --test-modulesを使用する場合、 --arch、 --configuration、 --device、 --framework、 --list-devices、 --os、 --runtime、または --use-current-runtimeを指定することはできません。 これらのオプションでは、プロジェクトの評価が必要であるか、既にビルドされているモジュールには関係ありません。

  • PROJECT_OR_TRAVERSAL_PATH

    実行するプロジェクトまたはトラバーサル プロジェクトを指定します。 .NET 11 Preview 7 以降、dotnet testはdirs.projなどのMicrosoft.Build.Traversal プロジェクトをサポートし、参照されるテスト プロジェクトを再帰的に実行します。

    .NET 12 Preview 1 以降では、引数は C# ファイルベースの MTP テスト アプリを識別することもできます。 ファイルベースのテスト アプリでは、 --deviceはサポートされていません。

  • --project <PROJECT_PATH>

    実行するproject ファイルのパス (フォルダー名または完全パス) を指定します。 指定しない場合は、既定で現在のディレクトリに設定されます。

  • --solution <SOLUTION_PATH>

    実行するソリューション ファイルのパス (フォルダー名または完全パス) を指定します。 指定しない場合は、既定で現在のディレクトリに設定されます。

  • --test-modules <EXPRESSION>

    ファイル グロビングを使用してテスト モジュールをフィルター処理します。 これらのテスト モジュールに属するテストのみが実行されます。 このオプションはプロジェクトを評価しないため、プロジェクトの復元状態が使用できない場合は、既にビルドされているテスト アプリケーションを実行するために使用します。 .NET 11 Preview 6 以降では、パターンの前に!を付けて、一致するモジュールを除外します。 複数のパターンをセミコロンで区切ります。各パターンの周囲の空白は無視されます。

  • --root-directory <ROOT_PATH>

    --test-modules オプションのルート ディレクトリを指定します。 --test-modules オプションでのみ使用できます。

  • --max-parallel-test-modules <NUMBER>

    並列で実行できるテスト モジュールの最大数を指定します。 既定値は Environment.ProcessorCountです。

  • --config-file <CONFIG_FILE>

    テストの実行に使用する構成ファイルを指定します。 相対パスが指定されている場合は、現在のディレクトリに基づいて絶対パスに変換されます。 構成ファイルの設定の詳細については、 testconfig.jsonを参照してください。

  • --results-directory <RESULTS_DIRECTORY>

    テスト結果が格納されるディレクトリを指定します。 ディレクトリが存在しない場合は、作成されます。 相対パスが指定されている場合は、現在のディレクトリに基づいて絶対パスに変換されます。

  • --results-directory-layout <flat|per-module>

    複数モジュールの実行で結果ディレクトリの下にファイルを整理する方法を指定します。 既定の flatでは、すべての結果が同じディレクトリに書き込まれます。 per-module は、各モジュールの結果を <project>/<target-framework>_<runtime-or-architecture>に書き込みます。これにより、同じファイル名のレポートが互いに上書きされなくなります。

    .NET 11 RC 1 以降で使用できます。

  • --diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>

    診断出力が格納されるディレクトリを指定します。 ディレクトリが存在しない場合は、作成されます。 相対パスが指定されている場合は、現在のディレクトリに基づいて絶対パスに変換されます。

  • --minimum-expected-tests <NUMBER>

    実行全体のテストの正の最小数を指定します。 集計されたテスト数が指定された最小値より小さい場合、テストの実行は終了コード 9 で失敗します。 グローバル数には、スキップされたテストが含まれます。 終了コードの詳細については、 MTP 出口コードを参照してください。

    このオプションは --前に表示されるため、グローバル (全体実行) オプションです。 代わりに各テスト モジュールの最小値を要求するには、 -- 後にオプションを渡して、すべてのテスト モジュールに転送されるようにします。 詳細については、「 実行全体とモジュールごとの最小値」を参照してください。

    注

    グローバル最小値には、.NET 10 SDK (10.0.100) 以降のバージョンが必要です。

  • --maximum-failed-tests <NUMBER>

    指定した数の失敗、エラー、タイムアウト、または取り消されたテストに達した後、実行の完了を停止します。 実行はコード 13 で終了します。

    .NET 11 Preview 7 以降で使用でき、MTP 2.4 以降が必要です。

  • --timeout <DURATION>

    少なくとも 1 つのテスト アプリケーションが実行されている間、指定した期間が経過した後に実行の完了を停止します。 正の数の後に、 500ms、 90s、 10m、 2h、 1dなどの単位を指定します。 タイムアウトした実行はコード 3 で終了します。

    .NET 11 Preview 7 以降で使用でき、MTP 2.4 以降が必要です。

  • -e|--environment <NAME="VALUE">

    テスト プロセスの環境変数を設定します。 複数の変数を設定するには、このオプションを複数回指定します。 コマンド ライン値は、起動プロファイルの値をオーバーライドします。

    起動プロファイルが存在しない場合、または --no-launch-profile を指定する場合は、.NET SDK 10.0.110 以降を使用します。以前.NET 10 個の SDK バージョンでは、このような場合は変数を無視できます。 .NET 11 Preview 7 以降では、変数は、機能に対応したビルド、デバイスの選択、デプロイ、および実行引数のターゲットにもフローします。

  • -a|--arch <ARCHITECTURE>

    ターゲット アーキテクチャを指定します。 これは、ランタイム識別子 (RID) を設定する簡単な構文です。指定した値は、既定の RID と組み合わされます。 たとえば、win-x64 マシンで --arch x86 と指定すると、RID は win-x86 に設定されます。 このオプションを使用する場合は、-r|--runtime オプションは使用しないでください。 .NET 6 Preview 7 以降で使用できます。

  • --artifacts-path <ARTIFACTS_DIR>

    実行されたコマンドからのすべてのビルド出力ファイルは、指定されたパスの下のサブフォルダーに配置され、プロジェクトで区切られます。 詳細については、「 Artifacts 出力レイアウトを参照してください。 このオプションと指定された値は、dotnetやdotnetを使用する場合など、別のdotnet build --no-restore コマンドの出力に依存する任意のdotnet publish --no-build コマンドで明示的にカスケードする必要があります。 .NET 8 SDK 以降で使用できます。

    .NET 11 以降の MTP モードで使用できます。

  • -c|--configuration <CONFIGURATION>

    ビルド構成を定義します。 ほとんどのプロジェクトの既定値は Debug ですが、projectのビルド構成設定をオーバーライドできます。

  • -f|--framework <FRAMEWORK>

    テストを実行するターゲット フレームワークのターゲット フレームワーク モニカー (TFM)。 ターゲット フレームワークは、project ファイルでも指定する必要があります。

  • --os <OS>

    ターゲット オペレーティング システム (OS) を指定します。 これは、ランタイム識別子 (RID) を設定する簡単な構文です。指定した値は、既定の RID と組み合わされます。 たとえば、win-x64 マシンで --os linux と指定すると、RID は linux-x64 に設定されます。 このオプションを使用する場合は、-r|--runtime オプションは使用しないでください。 .NET 6 以降で使用できます。

  • -r|--runtime <RUNTIME_IDENTIFIER>

    テスト対象のターゲット ランタイム。

    .NET SDK 7 以降では、短い形式-rを使用できます。

    注

    グローバル RuntimeIdentifier プロパティ (明示的に、または --arch、 --runtime、または --osを使用して) ソリューションのテストを実行することはサポートされていません。 代わりにRuntimeIdentifierを個々のproject レベルに設定します。

  • --use-current-runtime|--ucr

    復元とビルド中に、現在のランタイムをターゲット ランタイムとして使用します。

    .NET 11 Preview 6 以降で使用できます。 このオプションを --test-modulesと組み合わせることはできません。

  • -v|--verbosity <LEVEL>

    コマンドの詳細レベルを設定します。 指定できる値は、q[uiet]、m[inimal]、n[ormal]、d[etailed]、および diag[nostic] です。 詳細については、LoggerVerbosityを参照してください。

  • --no-build

    テスト projectが実行される前にビルドされていないことを指定します。 また、--no-restore フラグも暗黙的に設定します。

  • --no-dependencies

    プロジェクト間参照のビルドをスキップします。

    .NET 11 Preview 6 以降で使用できます。

  • --no-restore

    コマンドの実行時に暗黙的な復元が実行されないように指定します。

  • --nologo|--no-logo|--no-banner

    .NETと MTP のスタートアップ バナーを非表示にします。 -nologoフォームと/nologoフォーム、およびDOTNET_NOLOGO環境変数もサポートされています。

    .NET 11 Preview 7 以降の MTP モードで使用できます。

  • --no-ansi

    ANSI エスケープ文字の画面への出力を無効にします。

  • --no-progress

    画面への進行状況の報告を無効にします。

  • --no-artifact-post-processing

    マルチモジュール実行後の互換性のある成果物の後処理を無効にします。 .NET 11 RC 1 および MTP 2.4 以降では、登録された成果物ポスト プロセッサは、TRX 結果などの互換性のあるレポートを組み合わせることができます。 後処理が失敗した場合、SDK は元の成果物とテスト終了コードを保持します。

  • --output <VERBOSITY_LEVEL>

    テスト結果の出力の詳細度を指定します。 有効な値は、 Minimal、 Normal、および Detailedです。 既定値は Normalです。 Minimal には MTP 2.4 プレビューが必要です。

  • --show-test-results <OUTCOME>

    結果で結果ブロックを選択します。 MTP 2.4 プレビューでは、 passed、 failed、 skipped、 all、または noneを使用します。 failed値には、エラー、タイムアウト、取り消しも含まれます。

    passed、failed、およびskippedをコンマ、スペース、または繰り返しの--show-test-resultsオプションと組み合わせます。 allまたはnoneを別の値と組み合わせないでください。 この明示的なオプションは、オプションの順序に関係なく、 --output プリセットをオーバーライドします。

  • --list-tests [text|json]

    検出されたテストを実行せずに一覧表示します。 値を省略するか、人間が判読できる出力の text を指定します。 .NET 11 Preview 7 以降では、アセンブリ、ターゲット フレームワーク、アーキテクチャ別にテストをグループ化し、使用可能な識別子、ソースの場所、メソッド、パラメーター、特性を含むバージョン管理された JSON ドキュメントのjsonを指定します。

  • --no-launch-profile

    launchSettings.json を使用してアプリケーションを構成しないでください。 既定では、 launchSettings.json が使用され、環境変数とコマンド ライン引数をテスト実行可能ファイルに適用できます。

  • --no-launch-profile-arguments

    起動プロファイルで commandLineArgs によって指定された引数を使用してアプリケーションを実行しないでください。

  • --device <DEVICE_ID>

    Android または iOS テスト プロジェクトのターゲット フレームワークごとに、デバイス、エミュレーター、またはシミュレーターを選択します。 MTP パスは、macOS および Mac Catalyst テスト プロジェクトもサポートしています。 入力が対話型で、複数のデバイスを使用できる場合は、 dotnet test 1 つを選択するように求めることができます。

    .NET 11 Preview 6 以降で使用できます。 複数ターゲット プロジェクトの場合は、.NET 11 RC 2 以降を使用して、デバイス検出によって各ターゲット フレームワークが正しく評価されるようにします。 Browser WebAssembly テスト プロジェクトは、このオプションではサポートされていません。

  • --list-devices

    テストを実行せずにプロジェクトで使用可能なデバイスを一覧表示します。 ソリューションではなくプロジェクトを指定します。

    .NET 11 Preview 7 以降で使用できます。

  • --collect-test-map と --affected-tests

    リポジトリ テスト マップを収集するか、変更の影響を受けるテストを実行します。 これらの試験的なオプションには、個別に分散された拡張機能と DOTNET_CLI_ENABLE_AFFECTED_TESTS=1 環境変数が必要です。 2 つのオプションを組み合わせることはできません。 影響を受けるテスト ワークフローでは、デバイス テスト、並列テスト モジュール、または最小テスト ポリシーもサポートされません。

    .NET 11 RC 1 以降で使用できます。

  • --property:<NAME>=<VALUE>

    1 つ以上の MSBuild プロパティを設定します。 オプションを繰り返して、複数のプロパティを指定します。

    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    短い形式の -p を --property に使用することができます。 同じことが /property:property=value に適用され、その短い形式は /pです。 使用可能な引数の詳細については、 dotnet msbuild のドキュメントを参照してください。

  • -?|-h|--help

    コマンドの使用方法を示した説明を出力します。

  • args

    テスト アプリケーションに渡す追加の引数を指定します。 複数の引数を指定する場合は、空白で区切ります。 渡す内容の詳細と例については、 MTP の概要 と MTP の機能に関するページを参照してください。

    ヒント

    特定のプロジェクトに追加の引数を指定するには、TestingPlatformCommandLineArguments MSBuild プロパティを使用します。 このプロパティは、ソリューションがテスト フレームワーク (MSTest や xUnit.net など) を混在させたり、一部のプロジェクトのみが特定の拡張機能を参照したりする場合に特に便利です。 詳細については、「 テスト フレームワークまたは拡張機能が混在するソリューション」を参照してください。

注

ファイルへのトレース ログを有効にするには、環境変数 DOTNET_CLI_TEST_TRACEFILE を使用して、トレース ファイルへのパスを指定します。

.NET 11 RC 1 以降では、dotnet test -blはマルチプロジェクト、マルチターゲット、デバイスの実行に 1 つの MSBuild セッションを使用して、バイナリ ログに完全なビルドが含まれるようにします。

出力と取り消しの動作

.NET 11 Preview 6 以降では、対話型の ANSI 出力に現在実行中のテストが表示され、アセンブリごとのテスト数が報告されます。 出力がリダイレクトされた場合、ANSI または進行状況の出力が無効になっている場合、または環境が対話型でない場合、進行状況の表示は無効のままです。

.NET 11 Preview 6 以降、最初の Ctrl+C は新しいテスト アプリケーションのスケジュールを停止し、協調的な取り消しを要求します。 Ctrl+C キーをもう一度押して、子プロセスを直ちに終了します。 中止された実行は、コード 3 で終了します。

ライブ テスト ホストの出力には、プロトコル 1.1 以降をサポートする MTP ホストが必要です。 古いホストでは、出力がキャプチャされ、失敗したモジュールに対して再生されます。 .NET 11 Preview 7 以降では、障害の概要により、キャプチャされた標準出力が最初の 30 行と最後の 10 行まで 40 行を超えて切り捨てられます。診断ログは完全な出力を保持します。

複数モジュールの実行の場合、dotnet testは、.NET 11 Preview 7 以降の実行全体でゼロテストの結果を評価します。 テストのないモジュールは、明示的な最小テスト ポリシーでより多くのテストが必要でない限り、別のモジュールがテストを正常に実行しても、実行に失敗しません。

結果と成果物

SDK アーティファクトの出力レイアウトが有効になっている場合、.NET 11 RC 1 以降のバージョンでは、MTP レポート、カバレッジ ファイル、診断が既定で<ArtifactsPath>/test/<project>/<pivot>下に配置されます。 明示的な --results-directory または --results-directory-layout が優先されます。

.NET 11 RC 1 および MTP 2.4 以降、互換性のある拡張機能では、マルチモジュール実行から成果物を後処理できます。 たとえば、TRX 拡張機能では、モジュールごとのレポートを保持しながら、マージされたレポートを作成できます。 拡張機能とレポートの要件については、 MTP テスト レポートを参照してください。

引数をテスト アプリケーションに転送する

dotnet test は、認識されないトークンをテスト アプリケーションに転送します。 認識されないオプション名とその値の間に認識されたオプションが表示される場合、認識されたオプションを削除すると、残りのトークンがテスト アプリケーションのオプションにバインドされる方法が変わる可能性があります。 このあいまいさを回避するには、リテラル --の後にテスト アプリケーション引数を配置します。

dotnet test --results-directory TestResults -- --report-trx --report-trx-filename A.trx

前の例では、直接パッケージ参照として、またはそれを含むテスト SDK 構成を使用して、 Microsoft.Testing.Extensions.TrxReport パッケージが必要です。

同じパーサーの動作は、 dotnet run と dotnet buildにも適用されます。 詳細な例については、リファレンスのdotnet run」を参照してください。

実行全体とモジュールごとの最小値

--minimum-expected-testsの場合、--区切り記号によってオプションのスコープが決まります。

  • 前の引数--はグローバルです。 dotnet test オーケストレーターは、実行全体についてそれらを解釈します。
  • 後の引数--はローカルです。 dotnet test は各テスト モジュールに転送されるため、各モジュールは個別に適用されます。

--minimum-expected-testsは両方のスコープで使用できるため、実行全体、各モジュール、またはその両方に最低限必要な場合があります。

dotnet test --minimum-expected-tests 5 -- --minimum-expected-tests 2

上記のコマンドでは、実行全体で少なくとも 5 つのテストと、各テスト モジュールで少なくとも 2 つのテストが必要です。

2 つのスコープでは、スキップされたテストの数が異なります。

Scope スキップされたテストは最小値にカウントされますか?
グローバル Yes. dotnet test集計された合計には、スキップされたテストが含まれます。
モジュールごと No. MTP は、実行されたテストの数からスキップされたテストを除外します。

.NET 11 SDK 以降、実行全体に対するゼロ テストの判定は、集計された結果から 1 回決定されます。 --test-modulesやグローバル --filterなど、テストに一致しないモジュールはコード 8 (ZeroTests) で終了しますが、結果が集計される前にそのコードは成功に正規化されます。 その結果、1 つの空のモジュールで実行全体が失敗することはありませんが、モジュールは Exit code: 8 診断を出力に保持して可視性を確保します。

MTP 4.3.0 以降のバージョンでは、 --zero-tests-policy <allow-skipped|strict>が提供されます。 既定値の allow-skipped では、スキップされたモジュールがすべて成功します。 strict値はスキップされたテストを実行しないものとして扱うので、スキップされたモジュールはすべてコード 8 で終了します。 --後にオプションを渡して、各テスト モジュールに転送します。

dotnet test -- --zero-tests-policy strict

グローバル最小値を設定しない場合、.NET 11 SDK によって、実行全体のゼロ テストの判定が個別に決定されます。 モジュールごとの --zero-tests-policy 値に関係なく、すべてスキップされた実行全体がコード 8 で終了します。

--minimum-expected-testsを指定しても最小値が満たされない場合、終了コード 9 (MinimumExpectedTestsPolicyViolation) で実行が失敗します。 このコードは 8 とは異なり、より厳密なグローバルまたはモジュールごとの最小値が空のモジュールと混同されないようにします。 モジュールがゼロ テストを実行したときにモジュールごとの最小値がコード 9 を返すには、テスト モジュールで MTP 4.4.0 以降のバージョンを使用する必要があります。

注

--minimum-expected-tests 0 が無効です。 ゼロ テスト終了コードを抑制するには、 --ignore-exit-code 8を使用します。

.NET 11 Preview 6 以降では、テスト アプリケーションではなく、--tl、--terminallogger、および--tlpが MSBuild に転送されます。 .NET 12 Preview 1 以降では、認識された-mtフォームと-multiThreaded フォームも MSBuild に転送されます。 これらの名前のいずれかを使用してアプリケーション オプションを渡すには、 --の後に配置します。

--helpや--list-testsなどの実行モード オプションをdotnet testに直接渡します。 .NET 11 Preview 6 以降、SDK はテスト アプリケーションとネゴシエートされた実行モードを検証します。 起動プロファイルまたは TestingPlatformCommandLineArguments がこれらのオプションのいずれかを挿入した場合、要求された SDK 操作とアプリケーション操作が一致せず、診断で実行が失敗します。

例示

  • 現在のディレクトリのprojectまたはソリューションでテストを実行します。

    dotnet test
    
  • TestProject projectでテストを実行します。

    dotnet test --project ./TestProject/TestProject.csproj
    
  • TestProjects ソリューションでテストを実行します。

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • TestProject.dll アセンブリを使用してテストを実行します。

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • ルート ディレクトリ TestProject.dll アセンブリを使用してテストを実行します。

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • .NET 11 Preview 7 以降でトラバーサル プロジェクトによって参照されるすべてのテスト プロジェクトを実行します。

    dotnet test dirs.proj
    
  • .NET 11 Preview 7 以降でテストを JSON として一覧表示します。

    dotnet test --list-tests json
    
  • .NET 12 Preview 1 以降を使用して C# ファイルベースの MTP テスト アプリを実行します。

    dotnet test App.Tests.cs
    
  • Microsoft Code Coverage 拡張機能を使用して、現在のディレクトリでテストを実行します。 テスト アプリケーションは、 Microsoft.Testing.Extensions.CodeCoverageを直接参照するか、それを含むテスト SDK 構成を使用して参照する必要があります。

    dotnet test --coverage
    
  • テストを実行し、特定のディレクトリに結果を格納します。

    dotnet test --results-directory ./TestResults
    
  • 特定のディレクトリで診断出力を使用してテストを実行します。

    dotnet test --diagnostic-output-directory ./Diagnostics
    
  • 少なくとも 10 個のテストが実行されていることを確認して、テストを実行します。

    dotnet test --minimum-expected-tests 10
    
  • 実行全体で少なくとも 5 つのテストと、各テスト モジュールで少なくとも 2 つのテストが必要です。

    dotnet test --minimum-expected-tests 5 -- --minimum-expected-tests 2
    
  • TestProject project でテストを実行し、-bl (バイナリ ログ) 引数を msbuild に指定します。

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • TestProject project でテストを実行し、MSBuild DefineConstants プロパティを DEV に設定します。

    dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"
    

こちらも参照ください