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.
Microsoft.Testing.Platform est une alternative légère et portable à VSTest pour exécuter des tests dans tous les contextes, notamment l’intégration continue (CI) pipelines, l’interface CLI, l’Explorateur de tests Visual Studio et l’Explorateur de tests VS Code. Microsoft.Testing.Platform est intégré directement dans vos projets de test et il n’existe aucune autre dépendance d’application, telles que vstest.console ou dotnet test nécessaire pour exécuter vos tests.
Conseil / Astuce
Si vous avez besoin d’aide pour choisir entre VSTest et Microsoft.Testing.Platform, commencez par une vue d’ensemble des plateformes de test.
Utilisez cet article lorsque vous avez déjà décidé d’utiliser Microsoft.Testing.Platform et que vous souhaitez comprendre son modèle, ses fonctionnalités et son comportement opérationnel.
Microsoft.Testing.Platform est open source. Vous trouverez Microsoft.Testing.Platform code dans microsoft/testfx GitHub référentiel.
Commencer ici
Utilisez le chemin d’accès suivant, en fonction de ce dont vous avez besoin ensuite :
- Exécuter et déboguer des tests à partir de l’interface CLI, de l’IDE ou de ci : Exécuter et déboguer des tests
- Comprendre le comportement de la plateforme dans l’interface CLI : test avec
dotnet test - Recherchez des commutateurs CLI de plateforme et d’extension en un seul endroit : référence des options CLI de Microsoft.Testing.Platform
- Configurer des exécuteurs de framework : Exécuter des tests avec MSTest ou prise en charge de Microsoft.Testing.Platform dans NUnit (NUnit runner)
- Migrer une configuration VSTest existante : migrer de VSTest vers Microsoft.Testing.Platform
- Ajouter des diagnostics, une couverture et des rapports : fonctionnalités de Microsoft.Testing.Platform
- Créer votre propre extension : architecture Microsoft.Testing.Platform, points d’extension et services
Les piliers de Microsoft.Testing.Platform
Cette nouvelle plateforme de test repose sur l'expérience de l'équipe .NET Developer Experience Testing et vise à relever les défis rencontrés depuis la publication de .NET Core en 2016. Bien qu'il existe un niveau élevé de compatibilité entre l'infrastructure .NET et le .NET Core/.NET, certaines fonctionnalités clés telles que le plug-in-system et les nouveaux facteurs de forme possibles d'.NET compilations ont rendu complexe l'évolution ou la prise en charge complète de la nouvelle fonctionnalité d'exécution avec la plateforme VSTest actuelle architecture.
Les principaux facteurs moteurs de l’évolution de la nouvelle plateforme de test sont détaillés dans les éléments suivants :
Déterminisme : s’assurer que l’exécution des mêmes tests dans différents contextes (local, CI) produit le même résultat. Le nouveau runtime ne s’appuie pas sur la réflexion ou toute autre fonctionnalité de runtime de .NET dynamique pour coordonner une exécution de test.
Transparence du runtime : le runtime de test n’interfère pas avec le code de l’infrastructure de test, il ne crée pas de contextes isolés tels
AppDomainouAssemblyLoadContext, et n’utilise pas de résolution d’assembly personnalisé ou de réflexion.Inscription au moment de la compilation des extensions : les extensions, telles que les frameworks de test et les extensions in/out-of-process, sont inscrites pendant la compilation pour garantir le déterminisme et faciliter la détection des incohérences.
Zero dépendances : le cœur de la plateforme est un assembly .NET unique,
Microsoft.Testing.Platform.dll, qui n’a pas de dépendances autres que les runtimes pris en charge.Hostable : le runtime de test peut être hébergé dans n’importe quelle application .NET. Bien qu’une application console soit couramment utilisée pour exécuter des tests, vous pouvez créer une application de test dans n’importe quel type d’application .NET. Cela vous permet d’exécuter des tests dans des contextes spéciaux, tels que des appareils ou des navigateurs, où il peut y avoir des limitations.
Supporter tous les facteurs de forme de .NET : Prendre en charge les facteurs de forme actuels et futurs .NET, y compris l’AOT natif.
Performant : trouver le bon équilibre entre les fonctionnalités et les points d’extension pour éviter de gonfler le runtime avec du code non fondamental. La nouvelle plateforme de test est conçue pour « orchestrer » une exécution de test, au lieu de fournir des détails d’implémentation sur la façon de le faire.
Suffisamment extensible : la nouvelle plateforme est basée sur des points d’extensibilité pour permettre une personnalisation maximale de l’exécution. Il vous permet de configurer l’hôte de processus de test, d’observer le processus de test et d’utiliser des informations à partir de l’infrastructure de test dans le processus hôte de test.
Déploiement de module unique : la fonctionnalité d’hébergement permet un modèle de déploiement de module unique, où un résultat de compilation unique peut être utilisé pour prendre en charge tous les points d’extensibilité, à la fois hors processus et in-process, sans avoir à expédier différents modules exécutables.
Frameworks de test pris en charge
- MSTest. Dans MSTest, la prise en charge de
Microsoft.Testing.Platformest effectuée via l’exécuteur MSTest. - NUnit. Dans NUnit, la prise en charge de
Microsoft.Testing.Platformest effectuée par le lanceur NUnit. - xUnit.net. Pour plus d’informations, consultez Microsoft Testing Platform (xUnit.net v3) et Microsoft Testing Platform (xUnit.net v2) à partir de la documentation xUnit.net.
- TUnit : entièrement construit au-dessus du
Microsoft.Testing.Platform, pour plus d'informations, voir la documentation TUnit.
Frameworks cibles pris en charge
Microsoft.Testing.Platform prend en charge .NET (.NET 8 et versions ultérieures), .NET Framework (versions 4.6.2 et ultérieures) et cible NETStandard 2.0 pour une compatibilité maximale avec d’autres runtimes.
Exécuter et déboguer des tests
Pour obtenir des instructions détaillées sur l’exécution et le débogage de projets de test MTP à partir de l’interface CLI, Visual Studio, Visual Studio Code et ci pipelines, consultez Exécuter et déboguer des tests.
Paramètres
Pour obtenir la liste complète des options de ligne de commande de plateforme et d’extension, consultez les informations de référence sur les options CLI de Microsoft.Testing.Platform.
Intégration de MSBuild
Le package NuGet Microsoft.Testing.Platform.MSBuild fournit diverses intégrations pour Microsoft.Testing.Platform avec MSBuild :
- Prise en charge de
dotnet test. Pour plus d’informations, consultez Test avec dotnet test. - Prise en charge de
ProjectCapabilityrequise parVisual StudioetVisual Studio CodeExplorateurs de tests. - Génération automatique du point d’entrée (méthode
Main). - Génération automatique du fichier de configuration.
- Détection et inscription automatiques des packages d’extension installés.
Lorsque ce package est actif (la valeur par défaut pour MSTest, NUnit et les exécuteurs xUnit), l’installation d’un package NuGet d’extension est tout ce qui est nécessaire : les extensions sont enregistrées automatiquement sans modification du code. Si vous désactivez le point d’entrée généré automatiquement en définissant <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>, vous devez inscrire manuellement des extensions dans votre Main méthode. Chaque page d’extension documente son appel d’inscription manuel.
Remarque
Cette intégration fonctionne de manière transitive (un project qui fait référence à une autre project référençant ce package se comporte comme s’il référence le package) et peut être désactivé via la propriété IsTestingPlatformApplication MSBuild.