Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Conseil / Astuce
Avant de choisir une configuration d’exécuteur, consultez la vue d’ensemble des plateformes de test.
Vous pouvez exécuter des tests MSTest de plusieurs façons en fonction de vos besoins. Vous pouvez exécuter des tests à partir d’un IDE (par exemple, Visual Studio, Visual Studio Code ou JetBrains Rider), ou à partir de la ligne de commande ou à partir d’un service CI (par exemple, GitHub Actions ou Azure DevOps).
Historiquement, MSTest s’appuie sur VSTest pour exécuter des tests dans tous les contextes, mais à compter de la version 3.2.0, MSTest a son propre exécuteur de test. Il est recommandé d'utiliser ce nouvel exécuteur, plus léger et plus rapide que VSTest, pour exécuter des tests MSTest.
VSTest vs Microsoft.Testing.Platform (MTP)
MSTest prend en charge l’exécution de tests avec VSTest et Microsoft.Testing.Platform (MTP). La prise en charge de MTP est alimentée par le runner MSTest, qui peut exécuter des tests dans tous les contextes (par exemple, les pipelines d'intégration continue (CI), CLI, Explorateur de tests de Visual Studio et Explorateur de texte de VS Code). L'exécuteur MSTest est incorporé directement dans vos projets de test MSTest, et aucune autre dépendance d'application, comme vstest.console ou dotnet test, n'est nécessaire pour exécuter vos tests. Toutefois, vous pouvez toujours exécuter vos tests à l’aide dotnet testde .
L’exécuteur MSTest est open source et s’appuie sur la bibliothèque Microsoft.Testing.Platform. Vous trouverez Microsoft.Testing.Platform code dans le référentiel microsoft/testfx GitHub. L’exécuteur MSTest est fourni avec MSTest in 3.2.0 ou une version plus récente.
Activer Microsoft.Testing.Platform dans un project MSTest
Il est recommandé d'utiliser MSTest SDK car il simplifie considérablement votre configuration de project et met à jour le project, et garantit un alignement approprié des versions de la plateforme (Microsoft.Testing.Platform) et de ses extensions.
Lorsque vous utilisez MSTest SDK, par défaut, vous avez choisi d’utiliser Microsoft.Testing.Platform.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Vous pouvez également activer l’exécuteur MSTest en ajoutant la propriété EnableMSTestRunner et en définissant OutputType sur Exe dans votre fichier project. Vous devez également vous assurer que vous utilisez MSTest 3.2.0 ou version ultérieure. Nous vous recommandons vivement de mettre à jour la dernière version MSTest disponible.
Considérez le fichier de projet suivant :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Enable Microsoft.Testing.Platform, this is an opt-in feature -->
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!--
Displays error on console in addition to the log file. Note that this feature comes with a performance impact.
For more information, visit https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-integration-dotnet-test#show-failure-per-test
-->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<!--
MSTest meta package is the recommended way to reference MSTest.
It's equivalent to referencing:
Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework
MSTest.Analyzers
Starting with 3.8, it also includes:
Microsoft.Testing.Extensions.TrxReport
Microsoft.Testing.Extensions.CodeCoverage
-->
<PackageReference Include="MSTest" Version="4.1.0" />
</ItemGroup>
</Project>
Conseil / Astuce
Pour vous assurer que tous les projets de test de votre solution utilisent l’exécuteur MSTest, définissez les propriétés EnableMSTestRunner et TestingPlatformDotnetTestSupport dans le fichier Directory.Build.props au lieu des fichiers de projet individuels.
Configurations et filtres
.runsettings
Microsoft.Testing.Platform prend en charge les runsettings via l’option --settingsde ligne de commande . Pour obtenir la liste complète des entrées MSTest prises en charge, consultez Configurer MSTest : Runsettings. Les commandes suivantes présentent différents exemples d’utilisation.
Utilisation de dotnet run:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Utilisation de dotnet exec:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
- ou -
dotnet Contoso.MyTests.dll --settings config.runsettings
Utilisation de l’exécutable :
Contoso.MyTests.exe --settings config.runsettings
Filtre de tests
Vous pouvez fournir le filtre de tests en toute transparence à l’aide de l’option --filterde ligne de commande. Les commandes suivantes présentent quelques exemples.
Utilisation de dotnet run:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Utilisation de dotnet exec:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
- ou -
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Utilisation de l’exécutable :
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"