Migrez à partir de Microsoft. Testing.Platform (MTP) v1 vers v2

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: utilisez ITestHostApplicationLifetime à la place.
  • TestNodeFileArtifact: utilisez FileArtifactProperty à la place.
  • KeyValuePairStringProperty: utilisez TestMetadataProperty à la place.
  • TestSessionContext.Client: utilisez IClientInfo à 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

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-fileprefix de ligne de commande a été renommée --diagnostic-file-prefixen .
  • L’option --diagnostic-filelogger-synchronouswrite de ligne de commande a été renommée --diagnostic-synchronous-writeen .