次の方法で共有


Microsoft.Testing.Platform の概要

Microsoft.Testing.Platform は、あらゆるコンテキスト (継続的インテグレーション (CI) パイプライン、CLI、Visual Studio テスト エクスプローラー、VS Code テキスト エクスプローラーなど) でテストを実行するための、VSTest に代わる軽量で移植可能な代替手段です。 Microsoft.Testing.Platform はテスト プロジェクトに直接埋め込まれており、テストの実行に必要なvstest.consoledotnet test など、他のアプリの依存関係はありません。

Microsoft.Testing.Platform はオープンソースです。 Microsoft.Testing.Platform のコードは、microsoft/testfx GitHub リポジトリにあります。

サポートされるテスト フレームワーク

  • プロジェクトです。 MSTest では、Microsoft.Testing.Platform のサポートは MSTest ランナーを介して行われます。
  • NUnit。 NUnit では、Microsoft.Testing.Platform のサポートは NUnit ランナーを介して行われます。
  • xUnit.net: xUnit.net では、Microsoft.Testing.Platform のサポートは xUnit.net ランナーを介して行われます。
  • TUnit: 完全に Microsoft.Testing.Platform上に構築されています。詳細については、 TUnit ドキュメントを参照してください。

テストを実行およびデバッグする

Microsoft.Testing.Platform テスト プロジェクトは、直接実行 (またはデバッグ) できる実行可能ファイルとしてビルドされます。 コンソールやコマンドを実行する追加のテストはありません。 ほとんどの実行可能ファイルでよくあるように、エラーが発生すると、アプリはゼロ以外の終了コードで終了します。 既知の終了コードの詳細については、「Microsoft.Testing.Platform の終了コード」を参照してください。

重要

既定では、Microsoft.Testing.Platform はテレメトリを収集します。 オプトアウトの詳細とオプションについては、「Microsoft.Testing.Platform テレメトリ」を参照してください。

テストを実行する別の方法として、dotnet publish を使用してテスト プロジェクトを発行し、アプリを直接実行します。 たとえば、./Contoso.MyTests.exe を実行します。 一部のシナリオでは、dotnet build を使って実行可能ファイルを生成することもできますが、ネイティブ AOT などのエッジ ケースを考慮する必要がある場合があります。

dotnet run を使用します

dotnet run コマンドを使用して、テスト プロジェクトをビルドして実行できます。 これはテストを実行する最も簡単な方法ですが、最も時間がかかることがあります。 dotnet run を使用すると、必要に応じてテスト プロジェクトが確実に再作成されるため、ローカルでテストを編集したり実行したりする場合に役立ちます。 dotnet run は、現在のフォルダー内のプロジェクトも自動的に検索します。

dotnet run --project Contoso.MyTests

dotnet run の詳細については、「dotnet run」を参照してください。

dotnet exec を使用します

dotnet exec または dotnet コマンドは、既にビルドされているテスト プロジェクトを実行するために使われます。これは、アプリケーションを直接実行する代わりの方法です。 dotnet exec には、ビルドされたテスト プロジェクトの dll へのパスが必要になります。

dotnet exec Contoso.MyTests.dll

or

dotnet Contoso.MyTests.dll

Note

テスト プロジェクト実行可能ファイル (*.exe) へのパスを指定すると、次のエラーが発生します。

Error:
  An assembly specified in the application dependencies manifest
  (Contoso.MyTests.deps.json) has already been found but with a different
  file extension:
    package: 'Contoso.MyTests', version: '1.0.0'
    path: 'Contoso.MyTests.dll'
    previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net8.0\Contoso.MyTests.exe'

dotnet exec の詳細については、dotnet exec に関するページを参照してください。

dotnet test を使用します

Microsoft.Testing.Platform には、vstest.console.exe および dotnet test との互換性レイヤーが用意されており、新しい実行シナリオを有効にしながら、以前と同様にテストを実行できるようにします。

dotnet test Contoso.MyTests.dll

[オプション]

以下の一覧では、プラットフォーム オプションのみを説明しています。 各拡張機能によって提供される特定のオプションを表示するには、拡張機能のドキュメント ページを参照するか、--help オプションを使用します。

  • --diagnostic

診断ログを有効にします。 デフォルトのログ レベルは Trace です。 ファイルは、次の名前形式 log_[MMddHHssfff].diag で出力ディレクトリに書き込まれます。

  • --diagnostic-filelogger-synchronouswrite

組み込みのファイル ロガーにログの同期的な書き込みを強制します。 (プロセスがクラッシュした場合に) ログ エントリを少しも失いたくないときのシナリオに役立ちます。 これにより、テストの実行速度は低下します。

  • --diagnostic-output-directory

指定しない場合、診断ログの出力ディレクトリとして、ファイルはデフォルトの TestResults ディレクトリに生成されます。

  • --diagnostic-output-fileprefix

ログ ファイル名のプレフィックス。 既定値は "log_" です。

  • --diagnostic-verbosity

--diagnostic スイッチを使用するときの詳細レベルを定義します。 使用できる値は TraceDebugInformationWarningErrorCritical です。

  • --help

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

  • -ignore-exit-code

一部の 0 以外の終了コードを無視し、代わりに 0 として返すようにします。 詳細については、「特定の終了コードを無視する」を参照してください。

  • --info

.NET テスト アプリケーションに関する次のような詳細情報を表示します。

  • プラットフォーム。
  • 環境。
  • 登録済みの各コマンド ライン プロバイダー (nameversiondescriptionoptionsなど)
  • 登録済みの各ツール (commandnameversiondescriptionなど) と、すべてのコマンド ライン プロバイダー。

この機能は、同じコマンド ライン オプションを登録する拡張機能や、拡張機能 (またはプラットフォーム) の複数のバージョン間で使用可能なオプションの変更を理解するのに使用されます。

  • --list-tests

使用可能なテストを一覧表示します。 テストは実行されません。

  • --minimum-expected-tests

実行する必要があるテストの最小数を指定します。 既定では、少なくとも 1 つのテストが実行されることが想定されています。

  • --results-directory

テスト結果が配置されるディレクトリです。 指定されたディレクトリが存在しない場合は、作成されます。 既定値は、テスト アプリケーションを含むディレクトリ内の TestResults です。

MSBuild の統合

NuGet パッケージ Microsoft.Testing.Platform.MSBuild は、 Microsoft.Testing.Platform と MSBuild のさまざまな統合を提供します。

  • dotnet test をサポートします。 詳細については、 dotnet test integrationを参照してください。
  • Visual Studio および Visual Studio Code テスト エクスプローラーに必要な ProjectCapability のサポート。
  • エントリポイントの自動生成(Main メソッド)。
  • 設定ファイルの自動生成。

Note

この統合は推移的に機能し (このパッケージを参照する別のプロジェクトを参照するプロジェクトは、パッケージを参照しているかのように動作します)、 IsTestingPlatformApplication MSBuild プロパティを通じて無効にすることができます。

関連項目