Partager via


Prise en charge de Microsoft.Testing.Platform dans NUnit (NUnit runner)

Conseil / Astuce

Avant d’activer un exécuteur, consultez la vue d’ensemble des plateformes de test.

NUnit 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 l’exécuteur NUnit, qui peut exécuter des tests dans tous les contextes (par exemple, intégration continue (CI) pipelines, CLI, Visual Studio Explorateur de tests et Explorateur de texte VS Code). L'exécuteur NUnit est directement intégré à vos projets de test NUnit, et aucune autre dépendance d'application, telle que vstest.console ou dotnet test, n'est nécessaire pour exécuter vos tests. Toutefois, vous pouvez toujours exécuter vos tests à l’aide de dotnet test.

L’exécuteur NUnit est open source et s’appuie sur Microsoft.Testing.Platform. Vous trouverez Microsoft.Testing.Platform code dans microsoft/testfx GitHub référentiel. Le moteur d'exécution NUnit prend en charge la version 5.0 ou supérieure de NUnit3TestAdapter. Pour plus d’informations, consultez NUnit et Microsoft.Testing.Platform

Activer l’exécuteur NUnit dans un project NUnit

Vous pouvez activer l’exécuteur NUnit en ajoutant la propriété EnableNUnitRunner et en définissant OutputType sur Exe dans votre fichier project. Vous devez également vous assurer que vous utilisez NUnit3TestAdapter la version 5.0 ou ultérieure.

Conseil / Astuce

Pour vous assurer que tous les projets de test de votre solution utilisent l’exécuteur NUnit, définissez les propriétés EnableNUnitRunner et TestingPlatformDotnetTestSupport dans le fichier Directory.Build.props au lieu de fichiers de projet individuels.

Considérez le fichier de projet suivant :

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

  <PropertyGroup>
    <!-- Enable the NUnit runner, this is an opt-in feature -->
    <EnableNUnitRunner>true</EnableNUnitRunner>
    <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>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
    <PackageReference Include="NUnit" Version="4.3.2" />
    <PackageReference Include="NUnit.Analyzers" Version="4.6.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="NUnit3TestAdapter" Version="5.0.0" />

    <!--
      Coverlet collector isn't compatible with NUnit runner, you can
      either switch to Microsoft CodeCoverage (as shown below),
      or switch to be using coverlet global tool
      https://github.com/coverlet-coverage/coverlet#net-global-tool-guide-suffers-from-possible-known-issue
    -->
    <PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage"
                      Version="17.10.1" />
  </ItemGroup>

</Project>

Configurations et filtres

.runsettings

L’exécuteur NUnit prend en charge le runsettings par l’option --settings en ligne de commande. Les commandes suivantes affichent des exemples.

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 les filtres de tests en toute transparence à l’aide de l’option --filter en ligne de commande. Les commandes suivantes en donnent 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"