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