安定バージョンの MTP v2 が利用可能になりました。 この移行ガイドでは、MTP v2 の変更点と、このバージョンへの移行方法について説明します。
ソースコードの破壊的変更
これらは、移行後にビルド エラーを引き起こす可能性のある破壊的変更です。
サポートされていないターゲット フレームワークを削除しました
.NET Core 3.1 から .NET 7 へのターゲット フレームワークのサポートは削除されます。 サポートされている .NET の最小バージョンは .NET 8 です。 この変更は .NET Framework には影響しません。 .NET Framework 4.6.2 は、引き続きサポートされる最小の .NET Framework ターゲットです。
古い型を削除しました
MTP v1 では、次の型は古い形式としてマークされていました。 MTP v2 では、これらは完全に削除されます。
-
ITestApplicationLifecycleCallbacks: 代わりにITestHostApplicationLifetimeを使用します。 -
TestNodeFileArtifact: 代わりにFileArtifactPropertyを使用します。 -
KeyValuePairStringProperty: 代わりにTestMetadataPropertyを使用します。 -
TestSessionContext.Client: 代わりにIClientInfoを使用します。
この破壊的変更は、テスト フレームワークの一般的なユーザーには影響しません。 これは、テスト フレームワークの作成者と拡張機能の作成者にのみ影響します。
API シグネチャの変更
-
CancellationTokenパラメーターがIOutputDevice.DisplayAsync(IOutputDeviceDataProducer, IOutputDeviceData)に追加されました。 -
ITestSessionLifetimeHandler インターフェイスのメソッドは、
ITestSessionContextパラメーターとSessionUid パラメーターの両方ではなく、CancellationToken パラメーターを持つよう変更されます。 -
IDataConsumerが名前空間Microsoft.Testing.Platform.Extensions.TestHostMicrosoft.Testing.Platform.Extensionsに移動されます。
この破壊的変更は、テスト フレームワークの一般的なユーザーには影響しません。 これは、テスト フレームワークの作成者と拡張機能の作成者にのみ影響します。
動作の破壊的変更
これらは、実行時の動作に影響を与える可能性のある破壊的変更です。
VSTest ベースとの互換性 dotnet test
dotnet test コマンドには、次の 2 つの実装があります。
- VSTest ベースの実装: これは、.NET 9 SDK までの唯一の実装でした。
- MTP ベースの実装: これは .NET 10 SDK 以降で追加されました。
.NET 10 SDK で MTP テスト プロジェクトを実行するには、MTP ベースの dotnet test へのオプトインが必要になり、以前は MTP v1 の MSBuild プロパティ TestingPlatformDotnetTestSupport 有効にされていた VSTest ベースの実装では実行できなくなります。
MTP ベースの実装をオプトインするには、次の例に示すように、テスト ランナーを Microsoft.Testing.Platform として設定するように、リポジトリまたはソリューション ルートに global.json を作成します (または、既にある場合は既存の global.json を更新します)。
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
MTP v2 で VSTest ベースの dotnet test を実行しようとすると、次のエラーが発生します。
VSTest ターゲットを使用したテストは、.NET 10 SDK 以降の MTP でサポートされなくなりました。 dotnet テストを使用する場合は、新しい dotnet テスト エクスペリエンスにオプトインする必要があります。 詳細については、https://aka.ms/dotnet-test-mtp-error を参照してください。
コマンド ライン オプションの名前を変更する
-
--diagnostic-output-fileprefixコマンド ライン オプションの名前が--diagnostic-file-prefixに変更されました。 -
--diagnostic-filelogger-synchronouswriteコマンド ライン オプションの名前が--diagnostic-synchronous-writeに変更されました。
.NET