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.
Utiliser Microsoft.Testing.Platform en mode VSTest de
Cet article explique l’intégration de dotnet test pour Microsoft.Testing.Platform, qui est fournie par Microsoft.Testing.Platform.MSBuild lorsqu’elle est exécutée en mode VSTest de dotnet test.
Avant de vous plonger dans cet article, il est recommandé de lire d’abord Test avec le test dotnet, qui explique les deux modes de dotnet test (modes VSTest et MTP).
Par défaut, dotnet test utilise VSTest pour exécuter des tests. Pour activer la prise en charge pour Microsoft.Testing.Platform dans dotnet test, vous avez deux options :
- Utilisez
dotnet testen mode VSTest et spécifiez la<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>propriété MSBuild dans votre fichier projet. - Utilisez
dotnet testen mode MTP pour une prise en charge plus native de MTP dansdotnet test, qui n’est prise en charge qu’à partir du KIT SDK .NET 10.
Les deux options sont expliquées en détail dans l’article Test avec dotnet test .
Importante
Le reste de cet article est spécifique au mode VSTest de dotnet test.
Avertissement
À compter du SDK .NET 10, il est recommandé de ne pas utiliser le mode VSTest lors de l'exécution de dotnet test avec Microsoft.Testing.Platform.
Afficher l’échec par test
Par défaut, les échecs de test sont résumés dans un fichier .log, et un seul échec par projet de test est signalé à MSBuild.
Pour afficher les erreurs par test ayant échoué, spécifiez -p:TestingPlatformShowTestsFailure=true sur la ligne de commande ou ajoutez la propriété <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> à votre fichier projet.
Sur la ligne de commande :
dotnet test -p:TestingPlatformShowTestsFailure=true
Ou dans le fichier projet :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
Afficher la sortie complète de la plateforme
Par défaut, toutes les sorties de console que l’exécutable de test sous-jacent écrit sont capturées et masquées de l’utilisateur. Cela inclut la bannière, les informations de version et les informations de test mises en forme.
Pour afficher ces informations avec la sortie MSBuild, utilisez <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>.
Cette option n’a pas d’impact sur la façon dont l’infrastructure de test capture la sortie utilisateur écrite par Console.WriteLine ou d’autres façons similaires d’écrire dans la console.
Sur la ligne de commande :
dotnet test -p:TestingPlatformCaptureOutput=false
Ou dans le fichier projet :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>
Importante
Tous les exemples ci-dessus ajoutent des propriétés telles que EnableMSTestRunner, TestingPlatformDotnetTestSupportet TestingPlatformCaptureOutput dans le fichier csproj. Toutefois, il est vivement recommandé de définir ces propriétés dans Directory.Build.props. De cette façon, vous n’avez pas besoin de l’ajouter à chaque fichier de projet de test, et vous ne risquez pas d’introduire un nouveau projet qui ne définit pas ces propriétés, finissant ainsi avec une solution où certains projets utilisent VSTest, tandis que d’autres utilisent Microsoft.Testing.Platform, ce qui peut entraîner un fonctionnement incorrect et constitue un scénario non pris en charge.