Share via


Utiliser Microsoft.Testing.Platform avec la commande dotnet test

Cet article décrit comment utiliser dotnet test pour exécuter des tests lors de l’utilisation de Microsoft.Testing.Platform, ainsi que les différentes options disponibles pour configurer la sortie MSBuild produite lors de l’exécution de tests via Microsoft.Testing.Platform.

Cet article explique comment utiliser dotnet test pour exécuter tous les tests dans une solution (*.sln) qui utilise Microsoft.Testing.Platform.

Intégration de dotnet test

La commande dotnet test est un moyen d’exécuter des tests à partir de solutions, de projets ou d’assemblages déjà générés. Microsoft.Testing.Platform se connecte à cette infrastructure pour fournir un moyen unifié d’exécuter des tests, en particulier lors de la migration de VSTest vers Microsoft.Testing.Platform.

Intégration dotnet test - Mode VSTest

Microsoft.Testing.Platform fournit une couche de compatibilité (Pont VSTest) pour utiliser dotnet test en toute transparence.

Les tests peuvent être lancés en exécutant :

dotnet test

Cette couche exécute un test via VSTest et s’intègre avec lui au niveau de l’adaptateur d’infrastructure de test VSTest.

dotnet test – Mode Microsoft.Testing.Platform

Par défaut, VSTest est utilisé pour exécuter des tests Microsoft.Testing.Platform. Vous pouvez activer un Microsoft.Testing.Platform complet en spécifiant le paramètre <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> dans votre projet. Ce paramètre désactive VSTest et, grâce à la dépendance transitive au package NuGet Microsoft.Testing.Platform.MSBuild, il exécute directement dans votre solution tous les projets de tests autorisés par Microsoft.Testing.Platform. Cela fonctionne harmonieusement si vous passez un projet de test Microsoft.Testing.Platform direct.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <!-- Add this to your project file. -->
    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

  </PropertyGroup>

  <!-- ... -->

</Project>

Dans ce mode, des paramètres supplémentaires à l’exécution ne sont pas fournis directement via la ligne de commande. Ils doivent être fournis en tant que propriété MSBuild nommée TestingPlatformCommandLineArguments :

dotnet test -p:TestingPlatformCommandLineArguments=" --minimum-expected-tests 10 "

Options MSBuild supplémentaires

L’intégration MSBuild fournit des options qui peuvent être spécifiées dans le projet de l’utilisateur ou via des propriétés globales sur la ligne de commande, telles que -p:TestingPlatformShowTestsFailure=true.

Les options suivantes sont disponibles :

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 de projet.

Dans la ligne de commande :

dotnet test -p:TestingPlatformShowTestsFailure=true

Ou dans le fichier de projet :

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>

    <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 écrites par l’exécutable de test sous-jacent sont capturées et masquées pour 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.

Dans la ligne de commande :

dotnet test -p:TestingPlatformCaptureOutput=false

Ou dans le fichier de projet :

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!-- Add this to your project file. -->
    <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>

  </PropertyGroup>

  <!-- ... -->

</Project>