Panoramica dello strumento di esecuzione NUnit

Lo strumento di esecuzione NUnit è un'alternativa leggera e portabile a VSTest per l'esecuzione di test in tutti i contesti (ad esempio, pipeline di integrazione continua, interfaccia della riga di comando, Editor elenco dei test di Visual Studio, Editor elenco dei test di VS Code). Lo strumento di esecuzione NUnit è incorporato direttamente nei progetti di test NUnit e non sono necessarie altre dipendenze dell'app, come ad esempio vstest.console o dotnet test per eseguire i test.

Lo strumento di esecuzione NUnit è open source e si basa su una libreria Microsoft.Testing.Platform. È possibile trovare il codice Microsoft.Testing.Platform nel repository microsoft/testfx di GitHub. Lo strumento di esecuzione NUnit viene fornito in bundle con NUnit 5.0.0-beta.2 o versione successiva.

Abilitare lo strumento di esecuzione NUnit in un progetto NUnit

È possibile abilitare lo strumento di esecuzione NUnit aggiungendo la proprietà EnableNUnitRunner e impostando OutputType su Exe nel file di progetto. È anche necessario assicurarsi di usare NUnit 5.0.0-beta.2 o versione successiva.

Si consideri il file di progetto di esempio seguente:

<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>

Configurazioni e filtri

.runsettings

Lo strumento di esecuzione NUnit supporta runsettings tramite l'opzione della riga di comando --settings. I comandi seguenti sono esempi.

Utilizzo di dotnet run:

dotnet run --project Contoso.MyTests -- --settings config.runsettings

Utilizzo di dotnet exec:

dotnet exec Contoso.MyTests.dll --settings config.runsettings

oppure

dotnet Contoso.MyTests.dll --settings config.runsettings

Uso del file eseguibile:

Contoso.MyTests.exe --settings config.runsettings

Filtro dei test

È possibile fornire il filtro di test con semplicità usando l'opzione della riga di comando --filter. I comandi seguenti mostrano alcuni esempi.

Utilizzo di dotnet run:

dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"

Utilizzo di dotnet exec:

dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"

oppure

dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"

Uso del file eseguibile:

Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"