Los proyectos de prueba de MTP se compilan como ejecutables que se pueden ejecutar (o depurar) directamente. No hay una consola o comando adicional para ejecutar pruebas. La aplicación se cierra con un código de salida distinto de cero si se produce un error, que es típico para la mayoría de los ejecutables. Para obtener más información sobre los códigos de salida conocidos, vea Códigos de salida de MTP.
Publicar el project de prueba mediante dotnet publish y ejecutar la aplicación directamente es otra manera de ejecutar las pruebas. Por ejemplo, ejecutando el ./Contoso.MyTests.exe. En algunos escenarios también es viable usar dotnet build para generar el archivo ejecutable, pero puede haber casos perimetrales que se deben tener en cuenta, como AOT nativo.
Utilice dotnet run
El comando dotnet run se puede usar para compilar y ejecutar el project de prueba. Esta es la manera más sencilla, aunque a veces más lenta, de ejecutar las pruebas. El uso de dotnet run es práctico al editar y ejecutar pruebas localmente, ya que garantiza que la project de prueba se vuelva a compilar cuando sea necesario.
dotnet run también buscará el proyecto automáticamente en la carpeta actual.
dotnet run --project Contoso.MyTests
Para obtener más información sobre dotnet run, consulte dotnet run.
Utilice dotnet exec
El comando dotnet exec o dotnet se usa para ejecutar (o ejecutar) un project de prueba ya compilado, es una alternativa a ejecutar la aplicación directamente.
dotnet exec requiere la ruta de acceso al archivo DLL del proyecto de prueba compilado.
dotnet exec Contoso.MyTests.dll
o
dotnet Contoso.MyTests.dll
Nota:
Proporcionar la ruta de acceso al archivo ejecutable del proyecto de prueba (*.exe) produce un error.
Error:
An assembly specified in the application dependencies manifest
(Contoso.MyTests.deps.json) has already been found but with a different
file extension:
package: 'Contoso.MyTests', version: '1.0.0'
path: 'Contoso.MyTests.dll'
previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net10.0\Contoso.MyTests.exe'
Para obtener más información sobre dotnet exec, consulte dotnet exec.
Utilice dotnet test
A partir del SDK de .NET 10, dotnet test tiene un modo MTP dedicado. Seleccione MTP a través de global.json, o use la variable de entorno DOTNET_TEST_RUNNER con .NET 11 Preview 6 o posterior. El modo dedicado admite proyectos, soluciones, módulos de prueba integrados y tipos de entrada adicionales en versiones más recientes del SDK.
dotnet test --test-modules Contoso.MyTests.dll
Para la selección del ejecutor y la migración desde el modo de compatibilidad con VSTest, consulte Pruebas mediante dotnet test.
Las pruebas MTP se pueden ejecutar (y depurar) en Visual Studio, se integran con el Explorador de pruebas y también se pueden ejecutar directamente como proyecto de inicio.
Ejecución de la aplicación con Visual Studio
Los proyectos de prueba de MTP se compilan como ejecutables y se pueden ejecutar directamente. Esto ejecuta todas las pruebas del archivo ejecutable especificado, a menos que se proporcione un filtro.
- Vaya al proyecto de prueba que desea ejecutar en Explorador de soluciones, selecciónelo con el botón derecho y seleccione Establecer como proyecto de inicio.
- Seleccione Debug>Iniciar sin depuración (o use Ctrl+F5) para ejecutar el proyecto de prueba seleccionado.
Aparece la ventana de consola con la ejecución y el resumen de la prueba.
Depurar la aplicación directamente en Visual Studio
El proyecto de prueba de MTP se puede depurar directamente. Para depurar todas las pruebas en el ejecutable dado, a menos que se proporcione un filtro:
- Vaya al proyecto de prueba que desea ejecutar en Explorador de soluciones, selecciónelo con el botón derecho y seleccione Establecer como proyecto de inicio.
- Establece un punto de interrupción en la prueba que deseas depurar.
- Vaya a Debug>Start Debugging (o presione F5) para depurar el project de prueba seleccionado.
Todas las pruebas se ejecutan hasta que se alcance la prueba con un punto de interrupción. Recorra la prueba para depurarla. Una vez que haya terminado de depurar la aplicación, se reanuda la ejecución de todas las pruebas restantes, a menos que la detenga.
Usar el Explorador de pruebas
Para ejecutar una prueba, vaya al Explorador de pruebas y seleccione la prueba (o las pruebas) que se van a ejecutar. Selecciónelo con el botón derecho y elija Ejecutar. De forma similar a depurar una prueba, seleccione la prueba (o pruebas) en el Explorador de pruebas, seleccione con el botón derecho y elija Depurar.
Nota:
La actualización automática de pruebas sin compilar el proyecto no está disponible.
La extensión de C# junto con C# Dev Kit permite depurar o ejecutar pruebas en código Visual Studio, así como agregar integración con el Explorador de pruebas de Visual Studio Code.
Ejecución de la aplicación con código de Visual Studio
Los proyectos de prueba de MTP se compilan como ejecutables y se pueden ejecutar directamente. Esto ejecuta todas las pruebas del archivo ejecutable especificado, a menos que se proporcione un filtro.
- Vaya a un archivo de prueba para el que desea ejecutar pruebas.
- Use Ctrl+F5 para ejecutar el project de prueba seleccionado. Si tiene varios proyectos, una ventana emergente le pedirá que seleccione el que va a ejecutarse.
Aparece la ventana de consola con la ejecución y el resumen de la prueba.
Depurar la aplicación directamente en Visual Studio Code
Los proyectos de prueba de MTP se compilan como ejecutables y se pueden ejecutar directamente. Esto ejecuta todas las pruebas del archivo ejecutable especificado, a menos que se proporcione un filtro.
- Vaya a un archivo de prueba para el que desea ejecutar pruebas.
- Usa F5 para depurar el proyecto de prueba seleccionado. Si tiene varios proyectos, una ventana emergente le pedirá que seleccione el que va a ejecutarse.
Sugerencia
Hay varias otras maneras de ejecutar un dotnet project mediante C# DevKit, como ejecutar desde solution explorer o crear configuraciones de inicio correspondientes. Se especifican en la documentación de Visual Studio Code.
A medida que el proyecto se ejecuta, la pestaña de salida aparece con la ejecución y el resumen de tu prueba.
Usar el Explorador de pruebas
Para ejecutar una prueba, vaya al Explorador de pruebas y seleccione la prueba (o las pruebas) que se van a ejecutar. Selecciónelo con el botón derecho y elija Ejecutar. De forma similar a depurar una prueba, seleccione la prueba (o pruebas) en el Explorador de pruebas, seleccione con el botón derecho y elija Depurar.
Nota:
La actualización automática de pruebas sin compilar el proyecto no está disponible.
Para ejecutar varios proyectos de prueba en paralelo, invoque dotnet test una vez para la solución en lugar de agregar un paso de canalización para cada ejecutable de prueba. Al agregar un proyecto de prueba MTP a la solución, el mismo comando lo incluye sin un cambio de pipeline.
Ejecutar una solución en Azure Pipelines
Use el SDK de .NET 10 o posterior y MTP 1.7 o posterior. Todos los proyectos de prueba de la solución deben admitir MTP; Los proyectos de prueba solo de VSTest no se admiten en este modo. Para versiones anteriores del SDK, consulte Ejecución de proyectos MTP con el modo VSTest.
En la raíz del repositorio, cree un global.json archivo con el siguiente contenido. Si el archivo ya existe, agregue la sección test y asegúrese de que la configuración del SDK seleccione .NET 10 o posterior.
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
Para los informes TRX, cada proyecto de prueba debe hacer referencia a Microsoft.Testing.Extensions.TrxReport, ya sea directamente o a través de una configuración o perfil de SDK de prueba que lo incluya. Para obtener más información, consulte informes de prueba de Visual Studio (TRX).
Agregue el siguiente azure-pipelines.yml archivo al repositorio. En el ejemplo se supone que Contoso.sln y global.json están en la raíz del repositorio. Reemplace Contoso.sln por la ruta de acceso relativa al repositorio de la solución.
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: UseDotNet@2
displayName: Install .NET SDK
inputs:
packageType: sdk
version: 10.0.x
- task: DotNetCoreCLI@2
displayName: Run solution tests
inputs:
command: test
projects: Contoso.sln
arguments: --configuration Release --max-parallel-test-modules 4
workingDirectory: $(Build.SourcesDirectory)
publishTestResults: true
La DotNetCoreCLI@2 tarea invoca dotnet test una vez por solución. El comando restaura las dependencias, compila la solución y ejecuta sus módulos de prueba mtP en paralelo. De forma predeterminada, dotnet test se ejecuta hasta Environment.ProcessorCount módulos a la vez. En el ejemplo se usa --max-parallel-test-modules 4 para limitar la simultaneidad a cuatro módulos. Ajuste el límite para que coincida con la CPU, la memoria y otros recursos del agente.
Importante
Seleccione un archivo de solución en projects, no un patrón de archivo de proyecto como **/*.csproj. La tarea invoca dotnet test por separado para cada archivo coincidente, uno después de otro. Una sola ejecución de una solución permite a dotnet test coordinar la ejecución en paralelo entre sus proyectos de prueba.
El paralelismo de nivel de módulo es independiente de la ejecución paralela de pruebas dentro de un módulo. Para configurar pruebas paralelas dentro de un ensamblaje, use la configuración del framework de pruebas. Para MSTest, consulte ParallelizeAttribute.
Con publishTestResults: true, la tarea agrega --report-trx y --results-directory y publica los informes en la pestaña Pruebas de la ejecución de la canalización, incluso si se produce un error en las pruebas. Un código de salida distinto de dotnet test cero también hace que fallen la tarea y la canalización.
Nota:
La compatibilidad con MTP en DotNetCoreCLI@2 requiere la versión de tarea 2.263.0 o posterior. Mantenga global.json en el directorio de trabajo de la tarea para que tanto la tarea como el SDK de .NET seleccionen MTP.
Ejecución de una solución con un script
Para las versiones de tareas sin compatibilidad con MTP o para controlar directamente el comando de la CLI, use un script y publique los informes TRX en un paso independiente. Se aplican los mismos requisitos de .NET SDK, global.json y la extensión TRX.
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: UseDotNet@2
displayName: Install .NET SDK
inputs:
packageType: sdk
version: 10.0.x
- task: CmdLine@2
displayName: Run solution tests
inputs:
script: >-
dotnet test --solution Contoso.sln
--configuration Release
--max-parallel-test-modules 4
--results-directory "$(Agent.TempDirectory)"
--report-trx
workingDirectory: $(Build.SourcesDirectory)
- task: PublishTestResults@2
displayName: Publish test results
condition: succeededOrFailed()
inputs:
testResultsFormat: VSTest
testResultsFiles: '**/*.trx'
searchFolder: $(Agent.TempDirectory)
failTaskOnFailedTests: true
failTaskOnMissingResultsFile: true
La succeededOrFailed() condición publica los resultados después de una ejecución de prueba correcta o errónea. El código de salida distinto de cero del script sigue produciendo un error en el pipeline. Para evitar sobrescribir informes entre módulos, no asigne el mismo nombre de archivo TRX a cada módulo. Para conocer las opciones de nomenclatura y aislamiento, consulte Nombres de archivo de informe.
Ejecutar un único ejecutable de prueba
Para un solo proyecto de prueba, compile o publique el proyecto antes de invocar directamente su archivo ejecutable:
- task: CmdLine@2
displayName: "Run Contoso.MyTests"
inputs:
script: '.\Contoso.MyTests\bin\Debug\net10.0\Contoso.MyTests.exe'