Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La version stable MTP v2 est désormais disponible. Ce guide de migration explore les modifications apportées à MTP v2 et la façon dont vous pouvez migrer vers cette version.
Changements non rétrocompatibles de la source
Ces modifications de rupture peuvent entraîner des erreurs de compilation après la migration.
Frameworks cibles non pris en charge supprimés
La prise en charge des frameworks cibles de .NET Core 3.1 vers .NET 7 est supprimée. La version minimale prise en charge de .NET est .NET 8. Cette modification n’affecte pas .NET Framework. .NET Framework 4.6.2 continue d’être la cible .NET Framework minimale prise en charge.
Types obsolètes supprimés
Les types suivants ont été marqués obsolètes dans MTP v1. Dans MTP v2, ils sont supprimés complètement :
-
ITestApplicationLifecycleCallbacks: utilisezITestHostApplicationLifetimeà la place. -
TestNodeFileArtifact: utilisezFileArtifactPropertyà la place. -
KeyValuePairStringProperty: utilisezTestMetadataPropertyà la place. -
TestSessionContext.Client: utilisezIClientInfoà la place.
Cette modification incompatible n’affecte pas les utilisateurs typiques des frameworks de test. Elle affecte uniquement les auteurs de framework de test et les auteurs d’extensions.
Modifications de signature d’API
- Un
CancellationTokenparamètre a été ajouté à IOutputDevice.DisplayAsync(IOutputDeviceDataProducer, IOutputDeviceData). - Les méthodes de l'interface ITestSessionLifetimeHandler sont modifiées pour avoir un paramètre
ITestSessionContextau lieu des paramètres SessionUid et CancellationToken. -
IDataConsumerest déplacé de l'espace de nomsMicrosoft.Testing.Platform.Extensions.TestHostversMicrosoft.Testing.Platform.Extensions.
Cette modification incompatible n’affecte pas les utilisateurs typiques des frameworks de test. Elle affecte uniquement les auteurs de framework de test et les auteurs d’extensions.
Modifications importantes du comportement
Ces modifications non rétrocompatibles peuvent affecter le comportement à l'exécution.
Compatibilité avec ceux basés sur VSTest dotnet test
La dotnet test commande a deux implémentations :
- Implémentation basée sur VSTest : il s’agissait de la seule implémentation jusqu’au Kit de développement logiciel (SDK) .NET 9.
- Implémentation basée sur MTP : cela a été ajouté à partir du Kit de développement logiciel (SDK) .NET 10.
L’exécution de projets de test MTP avec le Kit de développement logiciel (SDK) .NET 10 nécessite désormais d’opter pour MTP dotnet test et ne peut plus être exécutée avec l’implémentation basée sur VSTest, qui a été précédemment activée par TestingPlatformDotnetTestSupport la propriété MSBuild dans MTP v1.
Pour opter pour l’implémentation basée sur MTP, créez global.json dans la racine du référentiel ou de la solution (ou mettez à jour des global.json existantes si vous en avez déjà), pour que l’exécuteur de test soit défini comme Microsoft.Testing.Platform, comme illustré dans l’exemple suivant :
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
La tentative d’exécution de VSTest dotnet test avec MTP v2 génère l’erreur suivante :
Le test avec la cible VSTest n’est plus pris en charge par MTP sur .NET sdk 10 et versions ultérieures. Si vous utilisez `dotnet test`, vous devriez activer la nouvelle expérience `dotnet test`. Pour plus d’informations, consultez https://aka.ms/dotnet-test-mtp-error
Renommer les options de ligne de commande
- L’option
--diagnostic-output-fileprefixde ligne de commande a été renommée--diagnostic-file-prefixen . - L’option
--diagnostic-filelogger-synchronouswritede ligne de commande a été renommée--diagnostic-synchronous-writeen .