Partager 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 fichier de projet. Ce paramètre désactive VSTest et, grâce à la dépendance transitive au package NuGet Microsoft.Testing.Platform.MSBuild, exécute directement tous les projets de test autonomes Microsoft.Testing.Platform dans votre solution. 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, vous pouvez fournir des paramètres supplémentaires qui sont utilisés pour appeler l'application de test de l'une des manières suivantes :

  • Microsoft.Testing.Platform À compter de la version 1.4 (incluse avec MSTest version 3.6), vous pouvez ajouter des options après le double tiret -- sur la ligne de commande :

    dotnet test -- --minimum-expected-tests 10
    
  • En utilisant la propriété TestingPlatformCommandLineArguments MSBuild sur la ligne de commande :

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

    Ou dans le fichier de projet :

    <PropertyGroup>
      ...
      <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
    </PropertyGroup>
    

Options MSBuild supplémentaires

L'intégration MSBuild fournit des options qui peuvent être spécifiées dans le fichier de projet ou par le biais de 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 des tests 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 é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>