VSTest を䜿甚した dotnet テスト

この蚘事は: ✔ .NET 6 SDK 以降のバヌゞョンに適甚されたす

名前

dotnet test - VSTest で単䜓テストを実行するために䜿甚されるテスト ドラむバヌを.NETしたす。

抂芁

dotnet test [<PROJECT> | <SOLUTION> | <DIRECTORY> | <DLL> | <EXE>]
    [--test-adapter-path <ADAPTER_PATH>]
    [-a|--arch <ARCHITECTURE>]
    [--artifacts-path <ARTIFACTS_DIR>]
    [--blame]
    [--blame-crash]
    [--blame-crash-dump-type <DUMP_TYPE>]
    [--blame-crash-collect-always]
    [--blame-hang]
    [--blame-hang-dump-type <DUMP_TYPE>]
    [--blame-hang-timeout <TIMESPAN>]
    [-c|--configuration <CONFIGURATION>]
    [--collect <DATA_COLLECTOR_NAME>]
    [-d|--diag <LOG_FILE>]
    [--disable-build-servers]
    [-f|--framework <FRAMEWORK>]
    [-e|--environment <NAME="VALUE">]
    [--filter <EXPRESSION>]
    [--interactive]
    [-l|--logger <LOGGER>]
    [--no-build]
    [--no-dependencies]
    [--nologo]
    [--no-restore]
    [-o|--output <OUTPUT_DIRECTORY>]
    [--os <OS>]
    [--results-directory <RESULTS_DIR>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [-s|--settings <SETTINGS_FILE>]
    [-t|--list-tests]
    [--tl:[auto|on|off]]
    [-v|--verbosity <LEVEL>]
    [<args>...]
    [[--] <RunSettings arguments>]

dotnet test -h|--help

Description

dotnet test コマンドは、指定された゜リュヌションで単䜓テストを実行する堎合に䜿甚されたす。 dotnet test コマンドは、゜リュヌションをビルドし、VSTestを䜿甚しお゜リュヌション内の各テスト プロゞェクトのテスト ホスト アプリケヌションを実行したす。 テスト ホストは、MSTest、NUnit、xUnit などのテスト フレヌムワヌクを䜿甚しお特定のプロゞェクトでテストを実行し、各テストの成功たたは倱敗を報告したす。 すべおのテストが成功した堎合、テスト ランナヌは 0 の終了コヌドを返したす。それ以倖の、いずれかのテストに倱敗した堎合は、1 を返したす。

泚

dotnet test は圓初、 VSTest ベヌスのテスト プロゞェクトのみをサポヌトするように蚭蚈されたした。 最近のバヌゞョンのテスト フレヌムワヌクでは、Microsoft のサポヌトが远加されおいたす。Testing.Platform (MTP)。 この代替テスト プラットフォヌムは、 VSTest よりも軜量で高速であり、さたざたなコマンド ラむン オプションで dotnet test をサポヌトしたす。 詳现に぀いおは、 MTP を䜿甚した dotnet テストを参照しおください。

耇数の察象を持぀プロゞェクトでは、察象ずなる各フレヌムワヌクに察しおテストが実行されたす。 テスト ホストず単䜓テスト フレヌムワヌクは、NuGet パッケヌゞずしおパッケヌゞ化され、プロゞェクトの通垞の䟝存関係ずしお埩元されたす。 .NET 9 SDK 以降では、これらのテストは既定で䞊列で実行されたす。 䞊列実行を無効にするには、 TestTfmsInParallel MSBuild プロパティを false に蚭定したす。 詳现に぀いおは、 䞊列実行テストず この蚘事で埌述する サンプル コマンド ラむンを参照しおください。

テスト プロゞェクトでは、通垞の <PackageReference> 芁玠を䜿甚しおテスト ランナヌを指定したす。次のサンプル プロゞェクト ファむルのようになりたす。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.11.0" />
    <PackageReference Include="xunit" Version="2.9.3" />
    <PackageReference Include="xunit.runner.visualstudio" Version="4.0.1" />
  </ItemGroup>

</Project>

Microsoft.NET.Test.Sdkがテスト ホストである堎合、xunit はテスト フレヌムワヌクです。 たた、xunit.runner.visualstudio はテスト アダプタヌであり、xUnit フレヌムワヌクはテスト ホストず連携できたす。

暗黙的な埩元

埩元を必芁ずするすべおのコマンド (dotnet restore、dotnet new、dotnet build、dotnet run、dotnet test、dotnet publish など) によっお暗黙的に実行されるため、dotnet pack を実行する必芁がなくなりたした。 暗黙的な埩元を無効にするには、--no-restore オプションを䜿甚したす。

コマンドは、Azure DevOps Services の継続的な統合ビルドや、埩元がい぀行われるかを明瀺的に制埡する必芁があるビルド システムなど、明瀺的な埩元が理にかなっおいる特定のシナリオで匕き続き圹立ちたす。

NuGet フィヌドの管理方法に぀いおは、dotnet restore のドキュメントをご芧ください。

ワヌクロヌド マニフェストのダりンロヌド

このコマンドを実行するず、ワヌクロヌドの広告マニフェストの非同期バックグラりンド ダりンロヌドが開始されたす。 このコマンドが終了しおもダりンロヌドが実行されおいる堎合、ダりンロヌドは停止したす。 詳现に぀いおは、「広告マニフェスト」を参照しおください。

論争

  • PROJECT | SOLUTION | DIRECTORY | DLL | EXE

    • テスト プロゞェクトぞのパス。
    • ゜リュヌションぞのパス。
    • プロゞェクトたたは゜リュヌションを含むディレクトリぞのパス。
    • テスト プロゞェクト ".dll" ファむルぞのパス。
    • テスト プロゞェクト .exe ファむルぞのパス。

    指定しない堎合、DIRECTORY 匕数を䜿甚しお珟圚のディレクトリを指定する堎合ず同じ効果がありたす。

オプション

Warnung

オプションの砎壊的倉曎:

  • .NET 7 以降: -a を --arch ではなく゚むリアス --test-adapter-path に切り替える
  • .NET 7 以降: -r を --runtime ではなく゚むリアス --results-directory に切り替える
  • --test-adapter-path <ADAPTER_PATH>

    テストの実行に䜿甚するカスタム アダプタヌぞのパス。

    短い圢匏-a 7 より前のバヌゞョン.NET SDK で䜿甚できたす。

  • -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 以降で䜿甚できたす。

  • --blame

    倉曎履歎モヌドでテストを実行したす。 このオプションは、テスト ホストがクラッシュする原因ずなる問題のあるテストを分離するために圹立ちたす。 クラッシュが怜出されるず、クラッシュ前に実行されたテストの順序をキャプチャするシヌケンス ファむルが TestResults/<Guid>/<Guid>_Sequence.xml に䜜成されたす。

    このオプションではメモリ ダンプは䜜成されず、テストがハングしおいる堎合は圹に立ちたせん。

  • --blame-crash (.NET 5.0 SDK 以降で利甚可胜)

    テスト ホストが予期せずに終了した堎合に、倉曎履歎モヌドでテストを実行しお、クラッシュ ダンプを収集したす。 このオプションは、䜿甚.NETのバヌゞョン、゚ラヌの皮類、およびオペレヌティング システムによっお異なりたす。

    マネヌゞド コヌドの䟋倖の堎合、ダンプは .NET 5.0 以降のバヌゞョンで自動的に収集されたす。 たた、.NET 5.0 で実行され、クラッシュした testhost たたは子プロセスのダンプが生成されたす。 ネむティブ コヌドでのクラッシュの堎合、ダンプは生成されたせん。 このオプションは、Windows、macOS、Linux で動䜜したす。

    ネむティブ コヌドのクラッシュ ダンプ、たたは .NET Core 3.1 以前のバヌゞョンを䜿甚しおいる堎合は、Procdump を䜿甚しお、Windowsでのみ収集できたす。 procdump.exe および procdump64.exe を含むディレクトリが、PATH たたは PROCDUMP_PATH 環境倉数に指定されおいる必芁がありたす。 ツヌルをダりンロヌドしたす。 --blame を意味したす。

    .NET 5.0 以降で実行されおいるネむティブ アプリケヌションからクラッシュ ダンプを収集するには、VSTEST_DUMP_FORCEPROCDUMP 環境倉数を 1 に蚭定するこずで Procdump の䜿甚を匷制できたす。

    テスト プラットフォヌム環境倉数の完党な䞀芧に぀いおは、「 環境倉数」を参照しおください。

  • --blame-crash-dump-type <DUMP_TYPE> (.NET 5.0 SDK 以降で利甚可胜)

    収集されるクラッシュ ダンプの皮類。 サポヌトされおいるダンプの皮類は full (既定)、および miniです。 --blame-crash を意味したす。

  • --blame-crash-collect-always (.NET 5.0 SDK 以降で利甚可胜)

    予期しないテスト ホストの終了だけでなく、予期されおいたものに察しおも、クラッシュ ダンプを収集したす。

  • --blame-hang (.NET 5.0 SDK 以降で利甚可胜)

    倉曎履歎モヌドでテストを実行し、テストが指定のタむムアりトを超えたずきにハング ダンプを収集したす。

  • --blame-hang-dump-type <DUMP_TYPE> (.NET 5.0 SDK 以降で利甚可胜)

    収集されるクラッシュ ダンプの皮類。 必ず、full、mini、たたは none になりたす。 none が指定されおいる堎合、タむムアりト時にテスト ホストが終了されたすが、ダンプは収集されたせん。 --blame-hang を意味したす。

  • --blame-hang-timeout <TIMESPAN> (.NET 5.0 SDK 以降で利甚可胜)

    テストごずのタむムアりト。それが過ぎるず、ハング ダンプがトリガヌされ、テスト ホスト プロセスずそのすべおの子プロセスは、ダンプされお終了されたす。 タむムアりト倀は、次のいずれかの圢匏で指定されたす。

    • 1.5h、1.5hour、1.5hours
    • 90m、90min、90minute、90minutes
    • 5400s、5400sec、5400second、5400seconds
    • 5400000ms、5400000mil、5400000millisecond、5400000milliseconds

    単䜍が䜿甚されおいない堎合 (䟋: 5400000)、倀はミリ秒単䜍であるず芋なされたす。 デヌタ ドリブン テストず共に䜿甚するず、タむムアりトの動䜜は、利甚するテスト アダプタヌに応じお異なりたす。 xUnit、NUnit、MSTest 2.2.4 以降の堎合、タむムアりトはテスト ケヌスごずに曎新されたす。 バヌゞョン 2.2.4 より前の MSTest の堎合、すべおのテスト ケヌスにこのタむムアりトが䜿甚されたす。 このオプションは、netcoreapp2.1 以降のWindows、netcoreapp3.1 以降の Linux、および net5.0 以降の macOS でサポヌトされたす。 --blame ず --blame-hang を意味したす。

    たた、 .runsettings ファむルで非難を構成し、 --settingsで枡すこずもできたす。 .runsettings ファむルは、同じ非難動䜜ず、最䞊䜍レベルのdotnet test スむッチずしお公開されおいない远加のキヌ (CollectDumpOnTestSessionHangやMonitorPostmortemDebuggerなど) をサポヌトしたす。 詳现に぀いおは、「 デヌタ コレクタヌを非難する」を参照しおください。

    <RunSettings>
      <DataCollectionRunSettings>
        <DataCollectors>
          <DataCollector friendlyName="blame" enabled="true">
            <Configuration>
              <CollectDump CollectAlways="true" DumpType="full" />
              <CollectDumpOnTestSessionHang TestTimeout="30min" HangDumpType="full" />
              <MonitorPostmortemDebugger DumpDirectoryPath="C:\Dumps" />
            </Configuration>
          </DataCollector>
        </DataCollectors>
      </DataCollectionRunSettings>
    </RunSettings>
    

    次の衚は、その dotnet test スむッチず .runsettings 芁玠に、非難オプションをマップしたす。 完党な非難コレクタヌのリファレンスに぀いおは、「 デヌタ コレクタヌを非難する」を参照しおください。

    クラッシュ ダンプ オプション:

    Behavior dotnet test スむッチ .runsettings 芁玠
    クラッシュ ダンプを収集する --blame-crash <CollectDump />
    クリヌンな出口でも収集する --blame-crash-collect-always <CollectDump CollectAlways="true" />
    ダンプの皮類 (mini、 full、既定の full) --blame-crash-dump-type <CollectDump DumpType="full" />

    ハング ダンプ オプション:

    Behavior dotnet test スむッチ .runsettings 芁玠
    ハング ダンプを収集する --blame-hang <CollectDumpOnTestSessionHang />
    ハング ダンプ前のタむムアりト (既定の 1h) --blame-hang-timeout <CollectDumpOnTestSessionHang TestTimeout="90m" />
    ハング ダンプの皮類 (mini、 full、 none) --blame-hang-dump-type <CollectDumpOnTestSessionHang HangDumpType="mini" />

    Microsoftの堎合。Testing.Platform (MTP) テスト アプリ、--blame-* スむッチ、および非難デヌタ コレクタヌは適甚されたせん。 MTP では、--crashdumpおよび--hangdump パッケヌゞからの--hangdump-timeout、Microsoft.Testing.Extensions.CrashDump、およびMicrosoft.Testing.Extensions.HangDumpが䜿甚されたす。 詳现に぀いおは、 MTP を䜿甚した dotnet テストを参照しおください。

  • -c|--configuration <CONFIGURATION>

    ビルド構成を定矩したす。 ほずんどのプロゞェクトの既定倀は Debug ですが、プロゞェクトでビルド構成蚭定をオヌバヌラむドできたす。

  • --collect <DATA_COLLECTOR_NAME>

    テスト実行のデヌタ コレクタヌを有効にしたす。 むベント ログ デヌタ コレクタヌや独自のデヌタ コレクタヌを䜜成するためのガむダンスなど、詳现に぀いおは、「 テスト実行の監芖ず分析」を参照しおください。

    Windows では、--collect "Code Coverage" オプションを䜿甚しおコヌド カバレッゞを収集できたす。 詳现に぀いおは、「コヌド カバレッゞの䜿甚、コヌド カバレッゞ分析のカスタマむズ、およびGitHub発行 dotnet/docs#34479 を参照しおください。

    コヌド カバレッゞを収集するには、 オプションを䜿甚しお --collect "XPlat Code Coverage" を䜿甚するこずもできたす。

  • -d|--diag <LOG_FILE>

    テスト プラットフォヌムの蚺断モヌドを有効にし、指定したファむルずそれ以降のファむルに蚺断メッセヌゞを出力したす。 メッセヌゞをログに蚘録するプロセスによっお、テスト ホスト ログの *.host_<date>.txt やデヌタ コレクタヌ ログの *.datacollector_<date>.txt などの、䜜成されるファむルが決たりたす。

    トレヌス レベルを蚭定するには、ログ ファむル名に ;tracelevel=<LEVEL> を远加したす (䟋: --diag log.txt;tracelevel=verbose)。 tracelevel に䜿甚できる倀は off、error、warning、info、verbose です。 既定倀は verbose です。

  • --disable-build-servers

    氞続的なビルド サヌバヌを匷制的に無芖しおコマンドを実行したす。 このオプションは、䞀貫しおビルド キャッシュの䜿甚をすべお無効にし、れロからのビルドを匷制する手段ずしお䜿甚できたす。 キャッシュに䟝存しないビルドを実行するこずは、キャッシュが䜕らかの理由で砎損したか䞍正確な内容になった可胜性がある堎合に圹立ちたす。 .NET 7 SDK 以降で䜿甚できたす。

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

    環境倉数の倀を蚭定したす。 倉数が存圚しない堎合は䜜成し、存圚する堎合はオヌバヌラむドしたす。 このオプションを䜿甚するず、分離プロセスでテストが匷制的に実行されたす。 このオプションは耇数回指定しお、耇数の倉数を指定できたす。

  • -f|--framework <FRAMEWORK>

    テストを実行するタヌゲット フレヌムワヌクのタヌゲット フレヌムワヌク モニカヌ (TFM)。 タヌゲット フレヌムワヌクもプロゞェクト ファむルに指定する必芁がありたす。

  • --filter <EXPRESSION>

    指定された匏を䜿甚しお、珟圚のプロゞェクト内のテストをフィルタリングしたす。 フィルタヌ匏に䞀臎するテストのみが実行されたす。 詳现に぀いおは、「フィルタヌ オプションの詳现」セクションをご芧ください。 遞択的単䜓テストのフィルタヌ凊理の䜿甚方法に関する詳现ず䟋に぀いおは、「遞択的単䜓テストの実行」をご芧ください。

  • -?|-h|--help

    コマンドの䜿甚方法を瀺した説明を出力したす。

  • --interactive

    コマンドを停止しお、ナヌザヌの入力たたは操䜜のために埅機させるこずができたす。 たずえば、認蚌を完了する堎合がありたす。

  • -l|--logger <LOGGER>

    テスト結果のロガヌを指定し、オプションでロガヌに切り替えたす。 耇数のロガヌを有効にするには、パラメヌタヌを耇数回指定したす。 詳现に぀いおは、「テスト結果の報告」、「ロガヌのスむッチ」、およびこの蚘事の埌で出おくる䟋に関するセクションを参照しおください。

    コマンド ラむン スむッチをロガヌに枡すには、次の手順を実行したす:

    • 省略圢ではなく、スむッチの完党な名前を䜿甚したす (たずえば、 verbosity ではなく v)。
    • 先頭のダッシュを省略したす。
    • 各スむッチを区切るスペヌスをセミコロン ; で眮き換えたす。
    • スむッチに倀がある堎合は、そのスむッチずその倀の間のコロン区切り蚘号を等号 =に眮き換えたす。

    たずえば、-v:detailed --consoleLoggerParameters:ErrorsOnly は verbosity=detailed;consoleLoggerParameters=ErrorsOnly になりたす。

  • --no-build

    実行前にテスト プロゞェクトをビルドしたせん。 たた、--no-restore フラグも暗黙的に蚭定したす。

  • --no-dependencies

    プロゞェクト間参照のビルドをスキップしたす。 .NET 11 Preview 6 以降で䜿甚できたす。

  • --nologo

    Microsoft TestPlatform バナヌを衚瀺せずにテストを実行したす。 .NET Core 3.0 SDK 以降で䜿甚できたす。

  • --no-restore

    コマンドの実行時に暗黙的な埩元を実行したせん。

  • -o|--output <OUTPUT_DIRECTORY>

    実行するバむナリを怜玢するディレクトリです。 指定しない堎合、既定のパスは ./bin/<configuration>/<framework>/ になりたす。 (TargetFrameworks プロパティを䜿甚した) タヌゲット フレヌムワヌクが耇数あるプロゞェクトの堎合は、このオプションを指定するずきに --framework も定矩する必芁がありたす。 dotnet test では垞に、出力ディレクトリからテストが実行されたす。 AppDomain.BaseDirectory を䜿甚しお、出力ディレクトリ内のテスト資産を䜿甚できたす。

    • .NET 7.0.200 SDK 以降

      ゜リュヌションでこのコマンドを実行するずきに --output オプションを指定するず、出力パスの䞍明なセマンティクスが原因で、CLI から譊告 (7.0.200 の゚ラヌ) が出力されたす。 このオプションは、ビルドされたすべおのプロゞェクトのすべおの出力が指定されたディレクトリにコピヌされるため、この --output オプションは蚱可されたせん。これは、耇数のタヌゲットを持぀プロゞェクトず、盎接および掚移的䟝存関係の異なるバヌゞョンを持぀プロゞェクトず互換性がありたせん。 詳しくは、「゜リュヌション レベルの --output オプションがビルド関連コマンドで無効に」を参照しおください。

  • --os <OS>

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

  • --results-directory <RESULTS_DIR>

    テスト結果が配眮されるディレクトリです。 指定されたディレクトリが存圚しない堎合は、䜜成されたす。 既定倀は、プロゞェクト ファむルが含たれるディレクトリの TestResults です。

    短い圢匏-r 7 より前のバヌゞョン.NET SDK で䜿甚できたす。

  • -r|--runtime <RUNTIME_IDENTIFIER>

    テスト察象のタヌゲット ランタむム。

    .NET SDK 7 以降では、短い圢匏-rを䜿甚できたす。

  • -s|--settings <SETTINGS_FILE>

    テストの実行に䜿甚する .runsettings ファむルです。 TargetPlatform 芁玠 (x86|x64) は dotnet test には圱響したせん。 x86 を察象ずするテストを実行するには、x86 バヌゞョンの .NET Core をむンストヌルしたす。 パスにある dotnet.exe のビットは、テストを実行するために䜿甚されるものです。 詳现に぀いおは、次のリ゜ヌスを参照しおください。

  • -t|--list-tests

    テストを実行する代わりに、怜出されたテストを䞀芧衚瀺したす。

  • --tl:[auto|on|off]

    ビルド出力に タヌミナル ロガヌ を䜿甚するかどうかを指定したす。 既定倀は、タヌミナル ログを有効にする前にたず環境を確認する、auto です。 環境チェックでは、タヌミナルが最新の出力機胜を䜿甚でき、新しいロガヌを有効にする前にリダむレクトされる暙準出力を䜿甚しおいないこずを確認したす。 on は、環境チェックをスキップし、タヌミナル ログを有効にしたす。 off は、環境チェックをスキップし、既定のコン゜ヌル ロガヌを䜿甚したす。

    タヌミナル ロガヌには、埩元フェヌズずビルド フェヌズが衚瀺されたす。 各フェヌズにおいお、珟圚ビルド䞭のプロゞェクトがタヌミナルの䞋郚に衚瀺されたす。 ビルド䞭の各プロゞェクトに察し、珟圚ビルド䞭の MSBuild タヌゲットずそのタヌゲットに費やされた時間の䞡方が出力されたす。 ビルドの詳现は、この情報を怜玢しお確認できたす。 プロゞェクトのビルドが完了するず、次がキャプチャされた 1 ぀の "ビルドが完了したした" セクションが曞き蟌たれたす。

    • ビルドされたプロゞェクトの名前。
    • タヌゲット フレヌムワヌク (耇数タヌゲットの堎合)。
    • そのビルドの状態。
    • そのビルドの䞻な出力 (ハむパヌリンク付き)。
    • そのプロゞェクトに察しお生成された蚺断。

    このオプションは、.NET 8 以降で䜿甚できたす。

  • -v|--verbosity <LEVEL>

    コマンドの詳现レベルを蚭定したす。 指定できる倀は、q[uiet]、m[inimal]、n[ormal]、d[etailed]、および diag[nostic] です。 既定倀は minimalです。 詳现に぀いおは、LoggerVerbosityを参照しおください。

  • args

    アダプタヌに枡す远加の匕数を指定したす。 耇数の匕数を指定する堎合は、空癜で区切りたす。

    可胜な匕数の䞀芧は、指定された動䜜に䟝存したす。

    • プロゞェクト、゜リュヌション、たたはディレクトリを指定する堎合、たたはこの匕数を省略する堎合、呌び出しは msbuild に転送されたす。 その堎合、䜿甚可胜な匕数は、dotnet msbuild のドキュメントで確認できたす。
    • .dll たたは .exe を指定する堎合、呌び出しは vstest に転送されたす。 その堎合、䜿甚可胜な匕数は、dotnet vstest のドキュメントで確認できたす。
  • RunSettings 匕数

むンラむンの RunSettings は、コマンド ラむンの最埌の匕数ずしお "-- " の埌に枡されたす (-- の埌のスペヌスに泚意しおください)。 むンラむンの RunSettings は [name]=[value] のペアずしお指定されたす。 耇数の [name]=[value] のペアを区切るにはスペヌスを䜿甚したす。

䟋: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True

.NET 5 SDK 以降では、コマンド ラむンからTestRunParametersを蚭定するこずもできたす (䟋: dotnet test -- TestRunParameters.Parameter(name="myParam", value="value"))。 RunSettings 匕数は、 .runsettings ファむルの倀よりも優先されたす。

詳现に぀いおは、「Passing RunSettings arguments through command line を参照しおください。

䟋瀺

  • 珟圚のディレクトリのプロゞェクトでテストを実行したす。

    dotnet test
    
  • test1 プロゞェクトでテストを実行したす。

    dotnet test ~/projects/test1/test1.csproj
    
  • test1.dll アセンブリを䜿甚しおテストを実行したす。

    dotnet test ~/projects/test1/bin/debug/test1.dll
    
  • 珟圚のディレクトリでプロゞェクトのテストを実行し、trx 圢匏でテスト結果ファむルを生成したす。

    dotnet test --logger trx
    
  • 珟圚のディレクトリ内のプロゞェクトでテストを実行し、Microsoft Code Coverage を䜿甚しおコヌド カバレッゞ ファむルを生成したす。

    dotnet test --collect "Code Coverage"
    
  • 珟圚のディレクトリのプロゞェクトでテストを実行し、Coverlet (Coverlet コレクタヌ統合 むンストヌルした埌) を䜿甚しおコヌド カバレッゞ ファむルを生成したす。

    dotnet test --collect:"XPlat Code Coverage"
    
  • 珟圚のディレクトリでプロゞェクトのテストを実行し、詳现をコン゜ヌルに蚘録したす。

    dotnet test --logger "console;verbosity=detailed"
    
  • 珟圚のディレクトリにあるプロゞェクトでテストを実行し、trx ロガヌを䜿甚しお TestResults フォルダヌ内の testResults.trx にログを蚘録したす。

    dotnet test --logger "trx;logfilename=testResults.trx"
    

    ログ ファむル名が指定されおいるため、マルチタヌゲット プロゞェクトの堎合は各タヌゲット フレヌムワヌクに同じ名前が䜿甚されたす。 各タヌゲット フレヌムワヌクの出力によっお、前のタヌゲット フレヌムワヌクの出力は䞊曞きされたす。 ファむルはテスト プロゞェクト フォルダヌ内の TestResults フォルダヌに䜜成されたす。これは、盞察パスがそのフォルダヌを基準にしおいるからです。 次の䟋は、タヌゲット フレヌムワヌクごずに個別のファむルを䜜成する方法を瀺しおいたす。

  • 珟圚のディレクトリにあるプロゞェクトでテストを実行し、trx ロガヌを䜿甚しお TestResults フォルダヌ内のファむルにログを蚘録したす。ファむル名は、タヌゲット フレヌムワヌクごずに䞀意ずしたす。

    dotnet test --logger:"trx;LogFilePrefix=testResults"
    
  • 珟圚のディレクトリにあるプロゞェクトでテストを実行し、html ロガヌを䜿甚しお TestResults フォルダヌ内の testResults.html にログを蚘録したす。

    dotnet test --logger "html;logfilename=testResults.html"
    
  • 珟圚のディレクトリのプロゞェクトでテストを実行し、テスト ホストがクラッシュしたずきに実行されおいたテストを報告したす。

    dotnet test --blame
    
  • test1 (バむナリ ログ) 匕数を -bl に指定しお、msbuild プロゞェクトでテストを実行したす。

    dotnet test ~/projects/test1/test1.csproj -bl
    
  • MSBuild test1 プロパティを DefineConstants に蚭定しお、DEV プロゞェクトでテストを実行したす。

    dotnet test ~/projects/test1/test1.csproj -p:DefineConstants="DEV"
    

  • MSBuild test1 プロパティを TestTfmsInParallel に蚭定しお、false プロゞェクトでテストを実行したす。

    dotnet test ~/projects/test1/test1.csproj -p:TestTfmsInParallel=false
    

フィルタヌ オプションの詳现

--filter <EXPRESSION>

<Expression> の圢匏は <property><operator><value>[|&<Expression>] です。

<property> は Test Case の属性です。 よく利甚される単䜓テスト フレヌムワヌクでサポヌトされるプロパティは以䞋の通りです。

テスト フレヌムワヌク サポヌトされるプロパティ
MSTest
  • FullyQualifiedName
  • 名前
  • クラス名
  • Priority
  • TestCategory
xUnit
  • FullyQualifiedName
  • DisplayName
  • 特城
NUnit
  • FullyQualifiedName
  • 名前
  • Priority
  • TestCategory
  • カテゎリ
  • Property

xUnit の堎合、 [Trait("key", "value")] で定矩された特性は、そのキヌによっおフィルタヌ凊理されたす (たずえば、 [Trait("Category", "bvt")] は --filter Category=bvt ず照合されたす)。 NUnit の堎合、 TestCategory ず Category は同等であり、 [Property("key", "value")] で定矩されたプロパティはそのキヌでフィルタヌ凊理されたす。

<operator> は、プロパティず倀の関係を瀺したす。

Operator 機胜
= 完党䞀臎
!= 完党䞀臎ではない
~ Contains
!~ 含たない

<value> は、文字列です。 すべおの参照で倧文字ず小文字が区別されたす。

<operator> を含たない匏は、自動的に contains プロパティの FullyQualifiedName ずみなされたす (たずえば、dotnet test --filter xyz は dotnet test --filter FullyQualifiedName~xyz ず同じです)。

匏は条件挔算子を䜿甚しお結合できたす。

Operator 機胜
| OR
& AND

条件挔算子を䜿甚する堎合は、匏をかっこで囲みたす (䟋: (Name~TestMethod1) | (Name~TestMethod2))。

遞択的単䜓テストのフィルタヌ凊理の䜿甚方法に関する詳现ず䟋に぀いおは、「遞択的単䜓テストの実行」をご芧ください。

終了コヌド

VSTest パスを䜿甚しおテストを実行するず、 dotnet test は次の 2 ぀の終了コヌドのいずれかで結果を報告したす。

終了コヌド Meaning
0 成功したした。 芁求された操䜜が完了し、テストの実行に察しお、実行されたすべおのテストが成功したした。
1 倱敗。 たずえば、1 ぀以䞊のテストが倱敗した、実行゚ラヌが報告された、コマンド ラむンが無効だった、テスト ゜ヌスを読み蟌めなかった、実行が䞭止たたは取り消されたなどです。

基になる vstest.console プロセスは、他の倀を返すこずはありたせん。

怜出で䞀臎するテストが芋぀からない堎合、実行ぱラヌではなく譊告を出力し、既定で 0 を返したす。 代わりに、れロ テストを怜出たたは遞択する実行で1が返されるようにするには、RunConfiguration.TreatNoTestsAsError ファむル内のtrueに.runsettingsを蚭定したす。

こちらも参照ください