Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
NUnit admite la ejecución de pruebas con VSTest y Microsoft.Testing.Platform (MTP). La compatibilidad con MTP se basa en el ejecutor de NUnit, que puede ejecutar pruebas en todos los contextos (por ejemplo, canalizaciones de integración continua (CI), CLI, Explorador de pruebas de Visual Studio y Explorador de texto de VS Code. El ejecutor de NUnit se inserta directamente en los proyectos de prueba de NUnit y no hay otras dependencias de la aplicación, como vstest.console
o dotnet test
, necesarias para ejecutar las pruebas. Sin embargo, todavía puede ejecutar las pruebas mediante dotnet test
.
El ejecutor de NUnit es de código abierto y se basa en Microsoft.Testing.Platform
. Puede encontrar el código Microsoft.Testing.Platform
en el repositorio de GitHub microsoft/testfx. El ejecutor de NUnit se admite en la versión 5.0 o posterior de NUnit3TestAdapter. Para obtener más información, consulte NUnit y Microsoft.Testing.Platform.
Habilitación del ejecutor de NUnit en un proyecto de NUnit
Puede habilitar el ejecutor de NUnit agregando la propiedad EnableNUnitRunner
y configurando OutputType
a Exe
en el archivo del proyecto. También debe asegurarse de que está usando la versión 5.0 o posterior de NUnit3TestAdapter
.
Sugerencia
Para asegurarse de que todos los proyectos de prueba de la solución utilicen el ejecutor de NUnit, establezca las propiedades `EnableNUnitRunner
` y `TestingPlatformDotnetTestSupport
` en el archivo `Directory.Build.props` en lugar de archivos de proyecto individuales.
Considere el siguiente archivo de proyecto de ejemplo:
<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>
Configuraciones y filtros
.runsettings
El ejecutor de NUnit admite runsettings a través de la opción --settings
de línea de comandos . Los comandos siguientes muestran ejemplos.
Uso de dotnet run
:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Uso de dotnet exec
:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
-o-
dotnet Contoso.MyTests.dll --settings config.runsettings
Con el archivo ejecutable:
Contoso.MyTests.exe --settings config.runsettings
Filtro de pruebas
Puede proporcionar las pruebas de filtro sin problemas mediante la opción de línea de comandos --filter
. Los siguientes comandos muestran algunos ejemplos.
Uso de dotnet run
:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Uso de dotnet exec
:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
-o-
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Con el archivo ejecutable:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"