Cette nouvelle expérience a été construite sur le programme d'exécution MSTest récemment introduit pour simplifier encore plus votre expérience. Ce nouveau programme d'exécution, un moyen léger, fiable et performant d'exécuter les tests MSTest, est livré en tant que dépendance du package NuGet MSTest.TestAdapter. Le programme d'exécution et ses extensions sont constitués de plusieurs packages NuGet afin de fournir une expérience d'exécution des tests extensible, flexible et configurable. Cependant, le fait d'être personnalisable peut susciter de nombreuses questions : Quelles sont les extensions recommandées ? Quelles sont les valeurs par défaut correctes ? Comment aligner les versions ? C'est là que le SDK MSTest entre en jeu.
Commencer avec le SDK MSTest
Il est facile de commencer à utiliser le nouveau SDK MSTest. Il suffit de créer un projet MSTest (ou de mettre à jour un projet MSTest existant) et de remplacer le contenu du fichier .csproj par ce qui suit :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 | <Project Sdk="MSTest.Sdk/3.3.1"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> </PropertyGroup> <!-- Additional properties and items for your tests. --> </Project> |
Avantages du SDK MSTest
Ce nouveau SDK offre de nombreux avantages pour vous et vos projets de test :
- Meilleures valeurs par défaut
- Utilisation simplifiée
- Extensibilité du programme d'exécution MSTest
- Une acceptation plus facile des nouvelles fonctionnalités (par exemple, les tests AOT natifs).
Meilleures valeurs par défaut
Lorsque vous utilisez le SDK MSTest, vous vous alignez sur les modèles fournis par les principaux types d'applications tels que ASP.NET Core, Razor, Windows Desktop. Il utilisera les suggestions par défaut que l'équipe MSTest fait pour vos projets de test.
Par exemple, Microsoft a introduit certains analyseurs de code statique MSTest avec la v3.2, mais ces analyseurs sont définis dans un nouveau package qui n'est pas disponible par défaut, de sorte que vous devrez ajouter manuellement ce package à vos projets de test. Au lieu de cela, en utilisant MSTest SDK, vous pouvez simplement changer de version et obtenir toutes les nouvelles valeurs par défaut.
Microsoft suit de près les principes de versionnement sémantique lors du choix des valeurs par défaut et de leur mise à jour entre les versions, afin de vous garantir des mises à jour compréhensibles et faciles.
Utilisation plus facile des extensions de MSTest Runner
En plus du programme d'exécution MSTest, Microsoft livre également un ensemble d'extensions que vous pouvez installer en tant que packages NuGet pour améliorer votre expérience de test. Pour vous aider à sélectionner les bonnes valeurs par défaut, les bonnes extensions et pour vous assurer que vous avez une mise à jour facile et des alignements entre les extensions, nous introduisons un nouveau concept de "profils". Microsoft propose actuellement les 3 profils suivants : Default, AllMicrosoft et None, que vous pouvez configurer et personnaliser. Le profil par défaut est recommandé.
Le profil par défaut contient
- Couverture du code Microsoft
- Prise en charge des rapports TRX
À partir de n'importe quel profil, vous pouvez ensuite choisir manuellement d'intégrer ou de supprimer toute extension supplémentaire en ajoutant des propriétés supplémentaires à votre projet qui suivraient le modèle Enable[NugetPackageNameWithoutDots]. Par exemple, pour ajouter la prise en charge du crash dump au profil par défaut, vous pouvez simplement ajouter la propriété MSBuild suivante EnableMicrosoftTestingExtensionsCrashDump à true.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | <Project Sdk="MSTest.Sdk/3.3.1"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <!-- Enable Microsoft.Testing.Extensions.CrashDump package on top of the default profile --> <EnableMicrosoftTestingExtensionsCrashDump>true</EnableMicrosoftTestingExtensionsCrashDump> </PropertyGroup> <!-- Additional properties and items for your tests. --> </Project> |
Tester l'AOT natif
MSTest est le premier Framework de test et exécuteur .NET à prendre en charge l'exécution de tests en mode Native AOT. Lorsque vous utilisez le SDK MSTest, Microsoft détecte automatiquement si vous publiez en mode AOT et permute de manière transparente tous les paquets et configurations de test requis pour correspondre à ce mode spécialisé.
Exemple de configuration de projet sans MSTest SDK :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <OutputType>exe</OutputType> <PublishAot>true</PublishAot> </PropertyGroup> <ItemGroup> <!-- Experimental MSTest Engine & source generator, close sourced, licensed the same as our extensions with Microsoft Testing Platform Tools license. --> <PackageReference Include="MSTest.Engine" Version="1.0.0-alpha.24163.4" /> <PackageReference Include="MSTest.SourceGeneration" Version="1.0.0-alpha.24163.4" /> <PackageReference Include="Microsoft.CodeCoverage.MSBuild" Version="17.10.4" /> <PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" Version="17.10.4" /> <PackageReference Include="Microsoft.Testing.Extensions.TrxReport" Version="1.0.2" /> <PackageReference Include="Microsoft.Testing.Platform.MSBuild" Version="1.0.2" /> <PackageReference Include="MSTest.TestFramework" Version="3.2.2" /> <PackageReference Include="MSTest.Analyzers" Version="3.2.2" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj" /> </ItemGroup> <ItemGroup> <Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" /> </ItemGroup> </Project> |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <Project Sdk="MSTest.Sdk/3.3.1"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <PublishAot>true</PublishAot> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj" /> </ItemGroup> <ItemGroup> <Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" /> </ItemGroup> </Project> |
La prochaine étape ?
Le style du SDK MSTest, bien que toujours en cours de développement, est la pierre angulaire des prochaines évolutions et fonctionnalités. Microsoft encourage fortement tous les utilisateurs de MSTest à passer à ce style SDK qui deviendra la standard pour le modèle de projet MSTest avec .NET 9.
Microsoft prévoit également d'ajouter d'autres scénarios dans les prochaines versions telles que Playwright et WinUI.
Source : "Introducing MSTest SDK" (Microsoft)
Et vous ?
Quel est votre avis sur le sujet ?
Voir aussi :
Microsoft partage sa vision initiale de .NET 9 et publie le premier aperçu de la nouvelle version du framework dont les domaines d'intérêt sont le développement d'apps cloud-natives et intelligentes
Qu'est-ce que .NET, et pourquoi le choisir ? par Microsoft .NET team