dotnet testdotnet test

この記事の対象: ✓ .NET Core 1.x SDK .NET Core 2.x SDKThis article applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK


dotnet test - 単体テストを実行するために使用される .NET テスト ドライバー。dotnet test - .NET test driver used to execute unit tests.


dotnet test [<PROJECT>] [-a|--test-adapter-path] [--blame] [-c|--configuration] [--collect] [-d|--diag] [-f|--framework] [--filter]
    [-l|--logger] [--no-build] [--no-restore] [-o|--output] [-r|--results-directory] [-s|--settings] [-t|--list-tests] 
    [-v|--verbosity] [-- <RunSettings arguments>]

dotnet test [-h|--help]


dotnet test コマンドは、指定されたプロジェクトで単体テストを実行する場合に使用されます。The dotnet test command is used to execute unit tests in a given project. dotnet test コマンドは、プロジェクト用に指定されたテスト ランナーのコンソール アプリケーションを起動します。The dotnet test command launches the test runner console application specified for a project. テスト ランナーでは、単体テスト フレームワーク (MSTest、NUnit、xUnit など) 用に定義されたテストを実行し、各テストの成功または失敗をレポートします。The test runner executes the tests defined for a unit test framework (for example, MSTest, NUnit, or xUnit) and reports the success or failure of each test. すべてのテストが成功した場合、テスト ランナーは 0 の終了コードを返します。それ以外の、いずれかのテストに失敗した場合は、1 を返します。If all tests are successful, the test runner returns 0 as an exit code; otherwise if any test fails, it returns 1. テスト ランナーと単体テスト ライブラリは、NuGet パッケージとしてパッケージ化され、プロジェクトの通常の依存関係として復元されます。The test runner and the unit test library are packaged as NuGet packages and are restored as ordinary dependencies for the project.

テスト プロジェクトでは、通常の <PackageReference> 要素を使用してテスト ランナーを指定します。次のサンプル プロジェクト ファイルのようになります。Test projects specify the test runner using an ordinary <PackageReference> element, as seen in the following sample project file:

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


    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
    <PackageReference Include="xunit" Version="2.4.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />




テスト プロジェクトへのパス。Path to the test project. 指定しない場合は、既定で現在のディレクトリに設定されます。If not specified, it defaults to current directory.


-a|--test-adapter-path <PATH_TO_ADAPTER>

テスト実行で指定されたパスからカスタムのテスト アダプターを使用します。Use the custom test adapters from the specified path in the test run.


変更履歴モードでテストを実行します。Runs the tests in blame mode. このオプションは、テスト ホストのクラッシュを引き起こす問題のあるテストを分離するのに役立ちます。This option is helpful in isolating the problematic tests causing test host to crash. これは、現在のディレクトリ内に出力ファイルを Sequence.xml として作成します。このファイルは、クラッシュ前にテストの実行順序をキャプチャします。It creates an output file in the current directory as Sequence.xml that captures the order of tests execution before the crash.

-c|--configuration {Debug|Release}

ビルド構成を定義します。Defines the build configuration. 既定値は Debug ですが、プロジェクトの構成がこの既定の SDK 設定をオーバーライドする可能性があります。The default value is Debug, but your project's configuration could override this default SDK setting.


テストの実行のためのデータ コレクターを有効にします。Enables data collector for the test run. 詳細については、「Monitor and analyze test run」 (テストの実行のモニターと分析) を参照してください。For more information, see Monitor and analyze test run.


テスト プラットフォームの診断モードを有効にし、指定したファイルに診断メッセージを出力します。Enables diagnostic mode for the test platform and write diagnostic messages to the specified file.

-f|--framework <FRAMEWORK>

特定のフレームワークのテスト バイナリを検索します。Looks for test binaries for a specific framework.

--filter <EXPRESSION>

指定された式を使用して、現在のプロジェクト内のテストを除外します。Filters out tests in the current project using the given expression. 詳細については、「フィルター オプションの詳細」セクションをご覧ください。For more information, see the Filter option details section. 選択的単体テストのフィルター処理の使用方法に関する詳細と例については、「選択的単体テストの実行」をご覧ください。For more information and examples on how to use selective unit test filtering, see Running selective unit tests.


コマンドの短いヘルプを印刷します。Prints out a short help for the command.

-l|--logger <LoggerUri/FriendlyName>

テスト結果のロガーを指定します。Specifies a logger for test results.


実行前にテスト プロジェクトをビルドしません。Doesn't build the test project before running it. また、--no-restore フラグを暗黙的に設定します。It also implicit sets the --no-restore flag.


コマンドを実行するときに、暗黙的な復元を実行しません。Doesn't execute an implicit restore when running the command.

-o|--output <OUTPUT_DIRECTORY>

実行するバイナリを検索するディレクトリです。Directory in which to find the binaries to run.

-r|--results-directory <PATH>

テスト結果が配置されるディレクトリです。The directory where the test results are going to be placed. 指定されたディレクトリが存在しない場合は、作成されます。If the specified directory doesn't exist, it's created.

-s|--settings <SETTINGS_FILE>

テストの実行に使用する .runsettings ファイルです。The .runsettings file to use for running the tests. .runsettings ファイルを使用して単体テストを構成します。Configure unit tests by using a .runsettings file.


現在のプロジェクトで検出されたすべてのテストを一覧表示します。List all of the discovered tests in the current project.

-v|--verbosity <LEVEL>

コマンドの詳細レベルを設定します。Sets the verbosity level of the command. 指定できる値は、q[uiet]m[inimal]n[ormal]d[etailed]、および diag[nostic] です。Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

RunSettings arguments

テストの RunSettings 構成として渡される引数です。Arguments passed as RunSettings configurations for the test. 引数は、"-- " に続く [name]=[value] のペアとして指定されます (-- の後ろのスペースに注意してください)。Arguments are specified as [name]=[value] pairs after "-- " (note the space after --). 複数の [name]=[value] のペアを区切るにはスペースを使用します。A space is used to separate multiple [name]=[value] pairs.

例 : dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=TrueExample: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True

RunSettings について詳しくは、vstest.console.exe:RunSettings 引数渡しに関するページをご覧ください。For more information about RunSettings, see vstest.console.exe: Passing RunSettings args.


現在のディレクトリのプロジェクトでテストを実行します。Run the tests in the project in the current directory:

dotnet test

test1 プロジェクトでテストを実行します。Run the tests in the test1 project:

dotnet test ~/projects/test1/test1.csproj

現在のディレクトリでプロジェクトのテストを実行し、trx 形式でテスト結果ファイルを生成します。Run the tests in the project in the current directory and generate a test results file in the trx format:

dotnet test --logger trx

フィルター オプションの詳細Filter option details

--filter <EXPRESSION>

<Expression> の形式は <property><operator><value>[|&<Expression>] です。<Expression> has the format <property><operator><value>[|&<Expression>].

<property>Test Case の属性です。<property> is an attribute of the Test Case. よく利用される単体テスト フレームワークでサポートされるプロパティは以下の通りです。The following are the properties supported by popular unit test frameworks:

テスト フレームワークTest Framework サポートされるプロパティSupported properties
  • FullyQualifiedNameFullyQualifiedName
  • nameName
  • ClassNameClassName
  • 優先度Priority
  • TestCategoryTestCategory
  • FullyQualifiedNameFullyQualifiedName
  • DisplayNameDisplayName
  • TraitsTraits

<operator> は、プロパティと値の関係を示します。The <operator> describes the relationship between the property and the value:

演算子Operator 関数Function
= 完全一致Exact match
!= 完全一致ではないNot exact match
~ 内容Contains

<value> は文字列です。<value> is a string. すべての参照で大文字と小文字が区別されます。All the lookups are case insensitive.

<operator> を含まない式は、自動的に FullyQualifiedName プロパティの contains とみなされます (たとえば、dotnet test --filter xyzdotnet test --filter FullyQualifiedName~xyz と同じです)。An expression without an <operator> is automatically considered as a contains on FullyQualifiedName property (for example, dotnet test --filter xyz is same as dotnet test --filter FullyQualifiedName~xyz).

式は条件演算子を使用して結合できます。Expressions can be joined with conditional operators:

演算子Operator 関数Function
| OROR      

条件演算子を使用する場合は、式をかっこで囲みます (例: (Name~TestMethod1) | (Name~TestMethod2))。You can enclose expressions in parenthesis when using conditional operators (for example, (Name~TestMethod1) | (Name~TestMethod2)).

選択的単体テストのフィルター処理の使用方法に関する詳細と例については、「選択的単体テストの実行」をご覧ください。For more information and examples on how to use selective unit test filtering, see Running selective unit tests.

関連項目See also