Uso de Microsoft.Testing.Platform con dotnet test
En este artículo se describe cómo usar dotnet test
para ejecutar pruebas al usar Microsoft.Testing.Platform
y las distintas opciones disponibles para configurar la salida de MSBuild generada al ejecutar pruebas a través de Microsoft.Testing.Platform.
En este artículo se muestra cómo usar dotnet test
para ejecutar todas las pruebas de una solución (*.sln) que usa Microsoft.Testing.Platform
.
Integración de dotnet test
El comando dotnet test es una manera de ejecutar pruebas desde soluciones, proyectos o ensamblados ya compilados. Microsoft.Testing.Platform se enlaza a esta infraestructura para proporcionar una manera unificada de ejecutar pruebas, especialmente al migrar de VSTest a Microsoft.Testing.Platform
.
Integración de dotnet test
: modo VSTest
Microsoft.Testing.Platform
proporciona una capa de compatibilidad (VSTest Bridge) para trabajar con dotnet test
sin problemas.
Las pruebas se pueden realizar mediante la ejecución de:
dotnet test
Esta capa ejecuta pruebas a través de VSTest y se integra con ella en el nivel adaptador del marco de pruebas de VSTest.
dotnet test
: modo Microsoft.Testing.Platform
De forma predeterminada, VSTest se usa para ejecutar pruebas de Microsoft.Testing.Platform
. Puede habilitar una Microsoft.Testing.Platform
completa especificando la configuración de <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
en el archivo del proyecto. Esta configuración deshabilita VSTest y, gracias a la dependencia transitiva del paquete NuGet Microsoft.Testing.Platform.MSBuild, ejecuta directamente todos los proyectos de prueba habilitados por Microsoft.Testing.Platform
en la solución. Funciona sin problemas si se pasa un proyecto de prueba directa de Microsoft.Testing.Platform
.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<!-- Add this to your project file. -->
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
</PropertyGroup>
<!-- ... -->
</Project>
En este modo, puede proporcionar parámetros adicionales que se utilizan para llamar a la aplicación de prueba de una de las siguientes maneras:
A partir de la versión 1.4 de
Microsoft.Testing.Platform
(incluida con la versión 3.6 de MSTest), puede colocar opciones después del doble guion--
en la línea de comandos:dotnet test -- --minimum-expected-tests 10
Mediante el uso de la propiedad de MSBuild
TestingPlatformCommandLineArguments
en la línea de comandos:dotnet test -p:TestingPlatformCommandLineArguments="--minimum-expected-tests 10"
O en el archivo del proyecto:
<PropertyGroup> ... <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments> </PropertyGroup>
Opciones adicionales de MSBuild
La integración de MSBuild proporciona opciones que se pueden especificar en el archivo de proyecto o a través de propiedades globales en la línea de comandos, como -p:TestingPlatformShowTestsFailure=true
.
Estas son las opciones disponibles:
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>
<IsTestProject>true</IsTestProject>
<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>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>