VSTest Bridge 拡張機能

この拡張機能は VSTest との互換性レイヤーを提供し、VSTest で既に実装されているテスト フレームワークを次の操作に使用できます。

  • Microsoft.Testing.Platform (MTP) を使用することで、手間をかけずに大幅な書き換えなしで実行できます。
  • VSTest と MTP の両方を同じテスト フレームワーク実装でサポートします。

この拡張機能は、 Microsoft.Testing.Extensions.VSTestBridge NuGet パッケージの一部として出荷されます。

VSTest との互換性

この拡張機能の主な目的は、新しいプラットフォームが有効になるデュアル モードを許可することで、VSTest ユーザーに簡単でスムーズなアップグレード エクスペリエンスを提供することです。また並行して、通常のワークフローを引き続き機能させるために互換性モードが提供されます。

ブリッジは、VSTest ベースのテスト フレームワークを MTP に適合させます。 VsTestConsoleWrapperをネイティブ MTP クライアントに変換したり、すべての MTP フレームワークが VSTest 経由で実行できることを保証したりすることはありません。 既存の Microsoft.TestPlatform.TranslationLayer 統合には、引き続き vstest.console と互換性のある VSTest アダプターが必要です。

MTP テストを検出して実行する新しいツールには、MTP サーバー モード クライアントを使用します。 その他の統合オプションについては、「 プログラムによるテストの検出と実行」を参照してください。

Runsettings のサポート

この拡張機能を使用すると、 VSTest .runsettings ファイルを提供することができますが、このファイル内のすべてのオプションがプラットフォームによって取り扱われるわけではありません。 ここでは、サポートされているおよびサポートされていない設定、構成オプションと、最も使用される VSTest 構成オプションの代替方法について説明します。

テスト フレームワークで有効にした場合は、 --settings <SETTINGS_FILE> を使用して .runsettings ファイルを指定することができます。

RunConfiguration 要素

MTP では、次の RunConfiguration 要素はサポートされていません。

Node 説明 理由 / 回避策
MaxCpuCount この設定は、プロセス レベルでの並列処理のレベルを制御します。 最大プロセス レベルの並列処理を有効にするには、0 を使用します。 MTP を MSBuild と共に使用すると、このオプションは MSBuild にオフロードされます。 1 つの実行可能ファイルを実行する場合、このオプションは MTP には意味がありません。
ResultsDirectory テスト結果が配置されるディレクトリ。 パスは .runsettings ファイルが含まれるディレクトリの相対パスになります。 --results-directoryコマンド ライン オプションを使用して、結果ディレクトリを設定します。 dotnet testの既定値とレイアウトについては、「結果と成果物」を参照してください。
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 回、複数回指定できます。

これらのパラメーターは、テスト実行のテスト フレームワークによってアクセスできます。