次の方法で共有


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

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

名前

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

概要

dotnet test
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>] 
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <NUMBER>]
    [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-restore]
    [--no-ansi]
    [--no-progress]
    [--output <VERBOSITY_LEVEL>]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [<args>...]

dotnet test -h|--help

Description

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

Warnung

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

暗黙的な復元

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

dotnet restoreなどの、明示的な復元が意味のある一部のシナリオや、復元が行われるタイミングを明示的に制御する必要があるビルド システムでは、dotnet restore は引き続き有用なコマンドです。

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

オプション

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

  • --project <PROJECT_PATH>

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

  • --solution <SOLUTION_PATH>

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

  • --test-modules <EXPRESSION>

    .NET のファイル globbing を使用してテスト モジュールをフィルター処理します。 これらのテスト モジュールに属するテストのみが実行されます。 .NET でファイル globing を使用する方法の詳細と例については、「ファイル の globbing」を参照してください。

  • --root-directory <ROOT_PATH>

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

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

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

  • -a|--arch <ARCHITECTURE>

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

  • -c|--configuration <CONFIGURATION>

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

  • -f|--framework <FRAMEWORK>

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

  • --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 を設定します。

  • -v|--verbosity <LEVEL>

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

  • --no-build

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

  • --no-restore

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

  • --no-ansi

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

  • --no-progress

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

  • --output <VERBOSITY_LEVEL>

    テストを報告するときの出力の詳細度を指定します。 有効値は Normal または Detailed です。 既定値は Normalです。

  • --no-launch-profile

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

  • --no-launch-profile-arguments

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

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

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

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

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

  • -?|-h|--help

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

  • args

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

    ヒント

    特定のプロジェクトに追加の引数を指定するには、TestingPlatformCommandLineArguments MSBuild プロパティを使用します。

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

例示

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

    dotnet test
    
  • TestProject プロジェクトでテストを実行します。

    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"
    
  • コード カバレッジを使用して、現在のディレクトリでテストを実行します。

    dotnet test --coverage
    
  • TestProject (バイナリ ログ) 引数を -bl に指定して、msbuild プロジェクトでテストを実行します。

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

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

こちらも参照ください