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.
Dans .NET, une infrastructure de test et une plateforme de test sont des composants différents qui fonctionnent ensemble pour découvrir et exécuter des tests.
- L’infrastructure de test définit le modèle de test sur lequel vous écrivez, par exemple MSTest, NUnit, xUnit.net ou TUnit.
- La plateforme de test exécute des tests, s’intègre aux IDEs et à l’interface CLI et fournit des points d’extension partagés.
Vous pouvez choisir entre deux plateformes de test :
- VSTest
- Microsoft.Testing.Platform (MTP)
Conseil / Astuce
Pour la configuration la plus simple, choisissez une plateforme pour votre référentiel et configurez des projets de test, CI et des outils de manière cohérente pour cette plateforme. Ne mélangez pas les projets de test basés sur VSTest et Microsoft.Testing..NET Platform dans la même solution ou exécutez la configuration, car ce scénario n'est pas pris en charge. Si vous exécutez également des tests non .NET qui dépendent de VSTest (par exemple, des tests C++ ou JavaScript), exécutez ces tests dans des configurations distinctes de vos tests basés sur MTP .NET.
Comment choisir votre plateforme
Utilisez les scénarios suivants pour choisir rapidement.
| Cas d’utilisation | Choisir | Pourquoi |
|---|---|---|
| Vous avez besoin de scénarios d’exécution de test AOT natifs ou de découpage. | Microsoft.Testing.Platform | MTP prend en charge ces scénarios de déploiement modernes, tandis que VSTest ne le fait pas. |
| Vous créez des projets de test empaquetés WinUI ou UWP. | VSTest | Ces types de projet ne sont actuellement pas pris en charge par MTP. |
| Vous devez combiner des tests .NET et des adaptateurs de test non .NET (par exemple, des adaptateurs JavaScript ou C++). | VSTest | VSTest prend en charge les scénarios d’adaptateur de langage mixte, tandis que MTP est .NET spécifique. |
| Vous souhaitez que les projets de test se comportent comme des exécutables standard (, exécution d’exécutable directe, et flux F5 du projet de démarrage). | Microsoft.Testing.Platform | MTP est exécutable en premier. Les applications de test s’exécutent comme des applications de .NET standard dans des flux de travail locaux et CI. |
| Vous vous appuyez sur des intégrations établies depuis longtemps dans les outils existants. | VSTest | VSTest présente le bilan de compatibilité le plus étendu parmi les produits, tâches et pipelines existants. La prise en charge de MTP se développe dans l'écosystème, mais certaines intégrations peuvent être en retard par rapport à VSTest. |
| Vous préférez les valeurs par défaut strictes et le comportement explicite. | Microsoft.Testing.Platform | MTP favorise l'exécution déterministe avec un modèle d'extension léger, avec abonnement, et une inscription lors de la compilation. Par exemple, il peut échouer quand aucun test n’est exécuté, réduire la variabilité dépendante de l’environnement et vous permettre de désactiver des extensions individuelles par environnement. |
| Vous préférez des valeurs par défaut plus souples et rétrocompatibles. | VSTest | Les deux plateformes s’intéressent à la compatibilité descendante. VSTest hiérarchise les valeurs par défaut orientées compatibilité pour diverses chaînes d’outils existantes, tandis que MTP assure la compatibilité descendante dans son propre modèle d’extension. |
| Vous êtes bloqué par un problème ou un comportement spécifique à VSTest dans votre flux de travail actuel. | Microsoft.Testing.Platform | Dans de nombreux scénarios, le même flux de travail n’est pas affecté lorsqu’il est déplacé vers MTP en raison de différences dans l’architecture du modèle d’exécution et de l’extension. |
Si votre cas d’usage spécifique n’est pas répertorié, les deux plateformes sont des choix valides.
Support des outils et de l'intégration
| Zone d’intégration | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| Intégration de l’IDE | Intégration mature entre Visual Studio et d’autres outils qui dépendent du protocole et des adaptateurs VSTest. | Pris en charge dans les scénarios Visual Studio et Visual Studio Code, avec des travaux d’intégration continus dans certaines parties de l’écosystème. |
| Outils CI et externes | Prise en charge étendue des outils et tâches Microsoft et non-Microsoft de longue date. Dans Azure DevOps, vous pouvez utiliser la tâche VSTest (VSTest@3, vstest.console) ou la tâche .NET (DotNetCoreCLI@2, dotnet test). |
Fonctionne dans les flux de travail CI et .NET modernes, mais certaines intégrations tierces peuvent toujours être en retard par rapport à VSTest. Dans Azure DevOps, utilisez la tâche .NET (DotNetCoreCLI@2, dotnet test). |
| Comportement | Mode VSTest par défaut. Les arguments et le comportement VSTest s’appliquent. | Le mode MTP natif est disponible dans .NET sdk 10 et versions ultérieures. |
Pour plus d’informations sur les modes et les arguments, consultez Test avec .
Commencer à partir de votre infrastructure de test
Si vous choisissez VSTest
- MSTest : Exécuter des tests avec MSTest
- NUnit : NUnit et Microsoft.Testing.Platform
- xUnit.net : Prise en main de xUnit.net
- TUnit : Non pris en charge sur VSTest. Utilisez Microsoft.Testing.Platform.
Si vous choisissez Microsoft.Testing.Platform
- MSTest : Exécuter des tests avec MSTest
- NUnit : Prise en charge de Microsoft.Testing.Platform dans NUnit (NUnit runner)
- xUnit.net : Plateforme de test Microsoft (xUnit.net v3)
- TUnit : Documentation TUnit
Prochaines étapes
- Découvrir les concepts MTP : Vue d’ensemble de Microsoft.Testing.Platform
- Comprendre les options VSTest : options VSTest
- Migrer à partir de VSTest : Migrer de VSTest vers Microsoft.Testing.Platform
- Ajouter des fonctionnalités : fonctionnalités de Microsoft.Testing.Platform