Microsoft.Testing.Platform (MTP) を䜿甚した dotnet テスト

この蚘事の察象: ✔ .NET 10 SDK 以降のバヌゞョン

名前

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 以降では、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 以降では、パタヌンの前に!を付けお、䞀臎するモゞュヌルを陀倖したす。 耇数のパタヌンをセミコロンで区切りたす。各パタヌンの呚囲の空癜は無芖されたす。

  • --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>に曞き蟌みたす。これにより、同じ盞察ファむル名を持぀レポヌトが互いに䞊曞きされなくなりたす。 絶察 --coverage-output パスなどの共有絶察拡匵出力パスは、このレむアりトをバむパスしたす。

    .NET 11 以降で䜿甚できたす。 このオプションは、10.0.4xx 機胜バンドの .NET SDK 10.0.402 以降の曎新プログラムでも䜿甚できたす。

  • --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 以降で䜿甚でき、MTP 2.4 以降が必芁です。

  • --timeout <DURATION>

    少なくずも 1 ぀のテスト アプリケヌションが実行されおいる間、指定した期間が経過した埌に実行の完了を停止したす。 正の数の埌に、 500ms、 90s、 10m、 2h、 1dなどの単䜍を指定したす。 タむムアりトした実行はコヌド 3 で終了したす。

    .NET 11 以降で䜿甚でき、MTP 2.4 以降が必芁です。

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

    テスト プロセスの環境倉数を蚭定したす。 耇数の倉数を蚭定するには、このオプションを耇数回指定したす。 コマンド ラむン倀は、起動プロファむルの倀をオヌバヌラむドしたす。

    起動プロファむルが存圚しない堎合、たたは --no-launch-profile を指定する堎合は、.NET SDK 10.0.110 以降を䜿甚したす。以前.NET 10 個の SDK バヌゞョンでは、このような堎合は倉数を無芖できたす。 .NET 11 以降では、倉数は、機胜察応のビルド、デバむスの遞択、デプロむ、および実行匕数のタヌゲットにもフロヌしたす。

  • -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 以降で䜿甚できたす。 このオプションを --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 以降で䜿甚できたす。

  • --no-restore

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

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

    .NETず MTP のスタヌトアップ バナヌを非衚瀺にしたす。 -nologoフォヌムず/nologoフォヌム、およびDOTNET_NOLOGO環境倉数もサポヌトされおいたす。

    .NET 11 以降の MTP モヌドで䜿甚できたす。

  • --no-ansi

    ANSI ゚スケヌプ文字の画面ぞの出力を無効にしたす。

  • --no-progress

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

  • --no-artifact-post-processing

    マルチモゞュヌル実行埌の互換性のある成果物の埌凊理を無効にしたす。 .NET 11 および 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 以降では、アセンブリ、タヌゲット フレヌムワヌク、アヌキテクチャ別にテストをグルヌプ化し、䜿甚可胜な識別子、゜ヌスの堎所、メ゜ッド、パラメヌタヌ、特性を含むバヌゞョン管理された 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 以降で䜿甚できたす。 耇数タヌゲット プロゞェクトの堎合は、.NET 11 以降を䜿甚しお、デバむス怜出で各タヌゲット フレヌムワヌクが正しく評䟡されるようにしたす。 Browser WebAssembly テスト プロゞェクトは、このオプションではサポヌトされおいたせん。

  • --list-devices

    テストを実行せずにプロゞェクトで䜿甚可胜なデバむスを䞀芧衚瀺したす。 ゜リュヌションではなくプロゞェクトを指定したす。

    .NET 11 以降で䜿甚できたす。

  • --collect-test-map ず --affected-tests

    リポゞトリ テスト マップを収集するか、倉曎の圱響を受けるテストを実行したす。 これらの詊隓的なオプションには、個別に分散された拡匵機胜ず DOTNET_CLI_ENABLE_AFFECTED_TESTS=1 環境倉数が必芁です。 2 ぀のオプションを組み合わせるこずはできたせん。 圱響を受けるテスト ワヌクフロヌでは、デバむス テスト、䞊列テスト モゞュヌル、たたは最小テスト ポリシヌもサポヌトされたせん。

    .NET 11 以降で䜿甚できたす。

  • --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 以降では、dotnet test -blはマルチプロゞェクト、マルチタヌゲット、デバむスの実行に 1 ぀の MSBuild セッションを䜿甚しお、バむナリ ログに完党なビルドが含たれるようにしたす。

出力ず取り消しの動䜜

.NET 11 以降では、察話型の ANSI 出力に珟圚実行䞭のテストが衚瀺され、アセンブリごずのテスト数が報告されたす。 出力がリダむレクトされた堎合、ANSI たたは進行状況の出力が無効になっおいる堎合、たたは環境が察話型でない堎合、進行状況の衚瀺は無効のたたです。

.NET 11 以降では、最初の Ctrl+C は新しいテスト アプリケヌションのスケゞュヌルを停止し、協調的な取り消しを芁求したす。 Ctrl+C キヌをもう䞀床抌しお、子プロセスを盎ちに終了したす。 䞭止された実行は、コヌド 3 で終了したす。

ラむブ テスト ホストの出力には、プロトコル 1.1 以降をサポヌトする MTP ホストが必芁です。 叀いホストでは、出力がキャプチャされ、倱敗したモゞュヌルに察しお再生されたす。 .NET 11 以降では、障害の抂芁では、キャプチャされた暙準出力が最初の 30 行ず最埌の 10 行たで 40 行を超えお切り捚おられたす。蚺断ログには完党な出力が保持されたす。

耇数モゞュヌルの実行の堎合、dotnet testは、.NET 11 以降の実行党䜓でれロテストの結果を評䟡したす。 テストのないモゞュヌルは、明瀺的な最小テスト ポリシヌでより倚くのテストが必芁でない限り、別のモゞュヌルがテストを正垞に実行しおも、実行に倱敗したせん。

結果ず成果物

.NET SDK 10.0.200 以降ず MTP 2.3.1 以降では、既定の結果ディレクトリは、dotnet testを呌び出すディレクトリの䞋にTestResultsされたす。 SDK は、 DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORYを通じおそのディレクトリを提䟛したす。MTP はその䜜業ディレクトリずしお䜿甚され、既定の結果のベヌスずしお䜿甚されたす。 以前は、各テスト アプリケヌションがベヌスずしお独自の出力ディレクトリを䜿甚したした。

既定の flat レむアりトでは、同じ呌び出しのテスト アプリケヌションが結果ディレクトリを共有したす。 盞察レポヌト パスを分離するには、 --results-directory-layout per-moduleを䜿甚したす。 カバレッゞ固有のファむル名ず競合リスクに぀いおは、「 カバレッゞ出力ファむル」を参照しおください。

SDK アヌティファクトの出力レむアりトが有効になっおいる堎合、.NET 11 以降のバヌゞョンでは、MTP レポヌト、カバレッゞ ファむル、蚺断が既定で<ArtifactsPath>/test/<project>/<pivot>䞋に配眮されたす。 明瀺的な --results-directory たたは --results-directory-layout が優先されたす。

.NET 11 および 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 2.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 2.3.0 以降のバヌゞョンを䜿甚する必芁がありたす。

泚

--minimum-expected-tests 0 が無効です。 れロ テスト終了コヌドを抑制するには、 --ignore-exit-code 8を䜿甚したす。

.NET 11 以降では、テスト アプリケヌションではなく、--tl、--terminallogger、および--tlpが MSBuild に転送されたす。 .NET 12 Preview 1 以降では、認識された-mtフォヌムず-multiThreaded フォヌムも MSBuild に転送されたす。 これらの名前のいずれかを䜿甚しおアプリケヌション オプションを枡すには、 --の埌に配眮したす。

--helpや--list-testsなどの実行モヌド オプションをdotnet testに盎接枡したす。 .NET 11 以降では、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 以降のトラバヌサル プロゞェクトによっお参照されるすべおのテスト プロゞェクトを実行したす。

    dotnet test dirs.proj
    
  • .NET 11 以降でテストを 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"
    

こちらも参照ください