dotnet test
で Microsoft.Testing.Platform を使用する
この記事では、 dotnet test
の使用時に Microsoft.Testing.Platform
を使ってテストを実行する方法と、Microsoft.Testing.Platform を使ってテストを実行するときに生成される MSBuild 出力を構成するために使用できるさまざまなオプションについて説明します。
この記事では、 dotnet test
を使って、 を使うソリューション (Microsoft.Testing.Platform
) 内のすべてのテストを実行する方法について説明します。
dotnet test
統合
dotnet test コマンドを使うと、ソリューション、プロジェクト、または既にビルドされたアセンブリからテストを実行できます。 Microsoft.Testing.Platform は、このインフラストラクチャに接続して、特に VSTest から Microsoft.Testing.Platform
に移行する場合に、テストを実行するための統一された方法を提供します。
dotnet test
の統合 - VSTest モード
Microsoft.Testing.Platform
には、 をシームレスに操作するための dotnet test
が用意されています。
テストを実行するには、以下を実行します。
dotnet test
このレイヤーでは、VSTest を介してテストを実行し、VSTest テスト フレームワーク アダプター レベルで統合します。
dotnet test
- Microsoft.Testing.Platform モード
既定では、VSTest は Microsoft.Testing.Platform
テストの実行に使用されます。 プロジェクト ファイルで Microsoft.Testing.Platform
設定を指定することで、完全な <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
を有効にすることができます。 この設定により、VSTest が無効になり、 Microsoft.Testing.Platform.MSBuild NuGet パッケージへの推移的な依存関係により、ソリューション内のすべての Microsoft.Testing.Platform
個の強化されたテスト プロジェクトが直接実行されます。 直接の Microsoft.Testing.Platform
テスト プロジェクトに合格すると、シームレスに機能します。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<!-- Add this to your project file. -->
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
</PropertyGroup>
<!-- ... -->
</Project>
このモードでは、次のいずれかの方法でテスト アプリケーションを呼び出すために使用される追加のパラメータを指定できます。
Microsoft.Testing.Platform
バージョン 1.4 (MSTest バージョン 3.6 に付属) 以降、コマンド ラインで二重ダッシュ--
の後にオプションを追加できます。dotnet test -- --minimum-expected-tests 10
コマンドラインで
TestingPlatformCommandLineArguments
MSBuild プロパティを使用すると、次のようになります。dotnet test -p:TestingPlatformCommandLineArguments="--minimum-expected-tests 10"
またはプロジェクト ファイル内:
<PropertyGroup> ... <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments> </PropertyGroup>
その他の MSBuild オプション
MSBuild 統合では、プロジェクト ファイル内またはコマンド ラインのグローバル プロパティ (-p:TestingPlatformShowTestsFailure=true
など) を通じて指定できるオプションが提供されます。
使用できるオプションは次のとおりです。
テストごとにエラーを表示する
デフォルトでは、テストの失敗は .log ファイルにまとめられ、テスト プロジェクトごとに 1 つの失敗が MSBuild に報告されます。
失敗したテストごとにエラーを表示するには、コマンド ラインで -p:TestingPlatformShowTestsFailure=true
を指定するか、プロジェクト ファイルに <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
プロパティを追加します。
コマンド ライン:
dotnet test -p:TestingPlatformShowTestsFailure=true
または、プロジェクト ファイル:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
完全なプラットフォーム出力を表示する
既定では、基となるテスト実行可能ファイルから書き込まれたすべてのコンソール出力が取り込まれ、ユーザーには表示されません。 これには、バナー、バージョン情報、書式設定されたテスト情報などがあります。
この情報を MSBuild 出力と共に表示するには、<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
を使用します。
このオプションは、テスト フレームワークがユーザー出力 (Console.WriteLine
または他の同様の書き込み方法でコンソールに書き込まれたもの) を取り込む方法には影響しません。
コマンド ライン:
dotnet test -p:TestingPlatformCaptureOutput=false
または、プロジェクト ファイル:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>
.NET