Partager via


Comparaison de Microsoft.Testing.Platform avec VSTest

Microsoft.Testing.Platform est une alternative portable et légère à VSTest pour exécuter des tests dans une ligne de commande, dans des pipelines d’intégration continue (CI) dans Service Test Explorer et dans Visual Studio Code. Dans cet article, vous allez découvrir les principales différences entre Microsoft.Testing.Platform et VSTest.

Différences dans l’exécution des tests

Les tests sont exécutés de différentes manières selon le lanceur de tests.

Exécuter des tests VSTest

VSTest est fourni avec Visual Studio, le kit de développement logiciel (SDK) .NET et comme outil autonome dans le package NuGet Microsoft.TestPlatform. VSTest utilise un exécutable pour effectuer des tests, appelé vstest.console.exe, qui peut être utilisé directement ou via dotnet test.

Exécuter des tests Microsoft.Testing.Platform

Microsoft.Testing.Platform est incorporé directement dans votre projet de test et ne fournit aucun autre exécutable. Lorsque vous exécutez votre exécutable de projet, vos tests s’exécutent. Pour obtenir plus d’informations sur l’exécution de tests Microsoft.Testing.Platform, consultez Vue d’ensemble de Microsoft.Testing.Platform : exécuter et déboguer des tests.

Espaces de noms et packages NuGet

Pour vous familiariser avec Microsoft.Testing.Platform et VSTest, il est utile de comprendre les espaces de noms et les packages NuGet utilisés par chacun d’eux.

Espaces de noms VSTest

VSTest est une collection d’outils de test, également connue sous le nom de Plateforme de test. Le code source VSTest est open source et disponible dans le référentiel GitHub microsoft/vstest. Le code utilise l’espace de noms Microsoft.TestPlatform.*.

VSTest est extensible et les types courants sont placés dans le package NuGet Microsoft.TestPlatform.ObjectModel.

Espaces de noms XML Microsoft.Testing.Platform

Microsoft.Testing.Platform est basé sur le package NuGet Microsoft.Testing.Platform et d’autres bibliothèques dans l’espace de noms Microsoft.Testing.*. Comme VSTest, Microsoft.Testing.Platform est open source et dispose d’un référentiel GitHub microsoft/testfx.

Protocole de communication

Remarque

Visual Studio Test Explorer prend en charge le protocole Microsoft.Testing.Platform depuis la version 17.12. Si vous exécutez/déboguez vos tests à l’aide de versions antérieures de Visual Studio, l’Explorateur de tests utilise vstest.console.exe et l’ancien protocole pour exécuter ces tests.

Microsoft.Testing.Platform utilise un protocole basé sur JSON RPC pour communiquer entre Visual Studio et le processus d’exécuteur de test. Le protocole est documenté dans le référentiel GitHub MSTest.

VSTest utilise également un protocole de communication json, mais il n’est pas basé sur JSON RPC.

Désactivation du nouveau protocole

Pour désactiver l’utilisation du nouveau protocole dans l’Explorateur de tests, vous pouvez modifier votre projet pour ajouter la propriété suivante : <DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>.

Vous pouvez également accéder aux options fonctionnalités en préversion dans Visual Studio et désélectionner l’option « Utiliser le mode serveur de plateforme de test ».

Exécutables

VSTest fournit plusieurs exécutables, notamment vstest.console.exe, testhost.exe et datacollector.exe. Toutefois, Microsoft.Testing.Platform est incorporé directement dans votre projet de test et n’expédie aucun autre exécutable. L’exécutable compilé par votre projet de test est utilisé pour héberger tous les outils nécessaires et effectuer toutes les tâches pour lancer des tests.

Voir aussi