この拡張機能は VSTest との互換性レイヤーを提供し、それに応じてテスト フレームワークが VSTest モード (vstest.console.exe
、通常の dotnet test
、AzDo での VSTest task
、Visual Studio のテスト エクスプローラー、Visual Studio Code 等) での実行をサポートし続けることを可能にします。この拡張機能は、 Microsoft.Testing.Extensions.VSTestBridge パッケージの一部として配布されています。
VSTest との互換性
この拡張機能の主な目的は、新しいプラットフォームが有効になるデュアル モードを許可することで、VSTest ユーザーに簡単でスムーズなアップグレード エクスペリエンスを提供することです。また並行して、通常のワークフローを引き続き機能させるために互換性モードが提供されます。
Runsettings のサポート
この拡張機能を使用すると、 VSTest .runsettings ファイルを提供することができますが、このファイル内のすべてのオプションがプラットフォームによって取り扱われるわけではありません。 ここでは、サポートされているおよびサポートされていない設定、構成オプションと、最も使用される VSTest 構成オプションの代替方法について説明します。
テスト フレームワークで有効にした場合は、 --settings <SETTINGS_FILE>
を使用して .runsettings
ファイルを指定することができます。
RunConfiguration 要素
次の RunConfiguration 要素は、Microsoft.Testing.Platform
ではサポートされていません。
ノード | 説明 | 理由 / 回避策 |
---|---|---|
MaxCpuCount | この設定は、プロセス レベルでの並列処理のレベルを制御します。 最大プロセス レベルの並列処理を有効にするには、0 を使用します。 | Microsoft.Testing.Platform を MSBuild と共に使用すると、このオプションは MSBuild にオフロードされます。 1 つの実行可能ファイルが実行されている場合、このオプションは Microsoft.Testing.Platform には意味がありません。 |
ResultsDirectory | テスト結果が配置されるディレクトリ。 パスは .runsettings ファイルが含まれるディレクトリの相対パスになります。 | コマンドライン オプション --results-directory を使用して、テスト結果が配置されるディレクトリを決定します。 指定されたディレクトリが存在しない場合は、作成されます。 既定値は、テスト アプリケーションを含むディレクトリ内の TestResults です。 |
TargetFrameworkVersion | この設定では、テストの実行に使用するフレームワーク バージョンまたはフレームワーク ファミリを定義します。 | このオプションは無視されます。
<TargetFramework> または <TargetFrameworks> MSBuild プロパティによって、アプリケーションのターゲット フレームワークが決まります。 テストは最終的なアプリケーションでホストされます。 |
TargetPlatform | この設定では、テストの実行に使用するアーキテクチャを定義します。 |
<RuntimeIdentifier> では、テストをホストする最終的なアプリケーションのアーキテクチャを決定します。 |
テストアダプターのエラーを警告として扱う | テスト アダプターのエラーを抑制し、警告になるようにします。 | Microsoft.Testing.Platform では、1 つのアセンブリから実行できるテストの種類は 1 つだけであり、テスト フレームワークまたはインフラストラクチャの他の部分の読み込みに失敗すると、一部のテストを検出または実行できなかったことが示されるため、スキップできないエラーになります。 |
TestAdaptersPaths | TestAdapters が配置されているディレクトリへの 1 つ以上のパス | Microsoft.Testing.Platform ではテスト アダプターの概念が使用されず、拡張機能がビルドの一部であり、ビルド ターゲットを介して自動的に、または手動で Program.cs に登録されていない限り、拡張機能の動的読み込みは許可されません。 |
TestCaseFilter | 実行されるテストを制限するフィルター。 | v1.6 以降では、この runsettings エントリがサポートされるようになりました。 このバージョンより前は、代わりにコマンド ライン オプション --filter 使用する必要があります。 |
TestSessionTimeout | 指定されたタイムアウトを超えたときにユーザーがテスト セッションを終了できるようにします。 | 代替オプションはありません。 |
DotnetHostPath | テスト ホストの実行に使用する dotnet ホストへのカスタム パスを指定します。 | Microsoft.Testing.Platform では、dotnet の追加の解決は行われません。 dotnet がそれ自体を解決する方法に完全に依存します。これは、 DOTNET_HOST_PATH などの環境変数によって制御できます。 |
テストなしをエラーとして扱う | テストが検出されない場合は、0 以外の終了コードで終了します。 | テスト アプリケーションでテストが検出も実行もされていない場合、Microsoft.Testing.Platform は既定でエラーになります。
--minimum-expected-tests コマンドライン パラメーター (既定値は 1) を使用して、アセンブリ内で検索するテストの数を設定できます。 |
DataCollectors 要素
Microsoft.Testing.Platform
ではデータ コレクターは使用されていません。 代わりに、インプロセスおよびアウトプロセス拡張機能の概念があります。 各拡張機能は、それぞれの構成ファイルまたはコマンド ラインを使用して構成されます。
最も重要なのは、 ハング と クラッシュ 拡張機能、および コード カバレッジ 拡張機能です。
LoggerRunSettings 要素
Microsoft.Testing.Platform
において、ロガーはコマンド ライン パラメータまたはコード内の設定によって構成されます。
VSTest フィルターのサポート
この拡張機能では、VSTest フィルター処理メカニズムを使用して、フィルター式に一致するテストのみを検出または実行する機能も提供されています。 詳細については、「フィルター オプションの詳細」セクションを参照するか、フレームワーク固有の詳細については、「選択した単体テストの実行」ページを参照してください。
テスト フレームワークで有効にした場合は、 --filter <FILTER_EXPRESSION>
を使用することができます。
TestRun パラメーター
--test-parameter
形式の key=value
コマンド ライン オプションを使用して、パラメーターをテスト実行に渡すことができます。 このオプションは、設定するパラメーターごとに 1 回、複数回指定できます。
これらのパラメーターは、テスト実行のテスト フレームワークによってアクセスできます。
- MSTest の場合は、Properties
- NUnit の場合は、TestContext.TestParameters を使用します
.NET