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.
Uso de Microsoft.Testing.Platform en el modo VSTest de
Este artículo explica la integración de dotnet test
para Microsoft.Testing.Platform, que Microsoft.Testing.Platform.MSBuild proporciona cuando se ejecuta en el modo VSTest de dotnet test
.
Antes de profundizar en este artículo, se recomienda leer primero Pruebas con dotnet test, donde se explican los dos modos de dotnet test
(modos VSTest y MTP).
De forma predeterminada, dotnet test
utiliza VSTest para ejecutar las pruebas. Para habilitar la compatibilidad con Microsoft.Testing.Platform
en dotnet test
, usted cuenta con dos opciones:
- Utilizar
dotnet test
en modo VSTest y especificar la propiedad MSBuild<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
en el archivo de proyecto. - Utilizar
dotnet test
en modo MTP para una compatibilidad más nativa de MTP endotnet test
, disponible únicamente a partir del SDK de .NET 10.
Ambas opciones se explican en detalle en el artículo Pruebas con dotnet test.
Importante
El resto de este artículo se enfoca en el modo VSTest de dotnet test
.
Precaución
A partir del SDK de .NET 10, se recomienda no utilizar el modo VSTest de dotnet test
cuando se ejecute con Microsoft.Testing.Platform.
Mostrar error por prueba
De forma predeterminada, se resumen los errores de prueba en un archivo .log y se notifica un único error por proyecto de prueba a MSBuild.
Para mostrar los errores por prueba fallida, especifique -p:TestingPlatformShowTestsFailure=true
en la línea de comandos o agregue la propiedad <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
al archivo del proyecto.
En la línea de comandos:
dotnet test -p:TestingPlatformShowTestsFailure=true
O en el archivo del proyecto:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
Mostrar la salida completa de la plataforma
De forma predeterminada, todas las salidas de la consola que escribe el ejecutable de prueba subyacente se capturan y se ocultan al usuario. Esto incluye el banner, la información de la versión y la información de la prueba con formato.
Para mostrar esta información junto con la salida de MSBuild, use <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
.
Esta opción no afecta a cómo el marco de pruebas captura la salida del usuario escrita por Console.WriteLine
ni a otras formas similares de escribir en la consola.
En la línea de comandos:
dotnet test -p:TestingPlatformCaptureOutput=false
O en el archivo del proyecto:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>
Importante
Todos los ejemplos anteriores agregan propiedades como EnableMSTestRunner
, TestingPlatformDotnetTestSupport
y TestingPlatformCaptureOutput
en el archivo csproj. Sin embargo, se recomienda encarecidamente establecer estas propiedades en Directory.Build.props
. De esta manera, no tiene que agregarlas a cada archivo de proyecto de prueba, y no se arriesga a introducir un nuevo proyecto que no establezca estas propiedades y terminar con una solución en la que algunos proyectos son VSTest mientras que otros son Microsoft.Testing.Platform, lo que puede no funcionar correctamente y es un escenario no soportado.