Partager via


Vue d’ensemble de l’exécuteur NUnit

L’exécuteur NUnit est une alternative légère et portable à VSTest pour l’exécution de tests dans tous les contextes (par exemple, les pipelines d’intégration continue (CI), l’interface de ligne de commande (CLI), l’explorateur de tests Visual Studio et l’explorateur de texte VS Code). L’exécuteur NUnit est incorporé directement dans vos projets de test NUnit, et il n’existe aucune autre dépendance d’application, telles que vstest.console ou dotnet test, nécessaire pour exécuter vos tests.

L’exécuteur NUnit est open source et s’appuie sur une bibliothèque Microsoft.Testing.Platform. Vous trouverez du code Microsoft.Testing.Platform dans le référentiel GitHub microsoft/testfx. L’exécuteur NUnit est fourni avec NUnit 5.0.0-beta.2 ou version ultérieure.

Activer l’exécuteur NUnit dans un projet NUnit

Vous pouvez activer l’exécuteur NUnit en ajoutant la propriété EnableNUnitRunner et le paramètre OutputType à Exe dans votre fichier projet. Vous devez également vous assurer d’utiliser NUnit 5.0.0-beta.2 ou version ultérieure.

Prenez l’exemple de fichier projet suivant :

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

  <PropertyGroup>
    <!-- Enable the NUnit runner, this is an opt-in feature -->
    <EnableNUnitRunner>true</EnableNUnitRunner>
    <OutputType>Exe</OutputType>

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

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

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

    <!--
      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 donnent 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 filtre 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"