dotnet testdotnet test

Este artículo se aplica a: ✓ SDK de .NET Core 1.x SDK de .NET Core 2.xThis article applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

NameName

dotnet test: controlador de prueba de .NET usado para ejecutar pruebas unitarias.dotnet test - .NET test driver used to execute unit tests.

SinopsisSynopsis

dotnet test [<PROJECT>] [-a|--test-adapter-path] [--blame] [-c|--configuration] [--collect] [-d|--diag] [-f|--framework] [--filter]
    [-l|--logger] [--no-build] [--no-restore] [-o|--output] [-r|--results-directory] [-s|--settings] [-t|--list-tests] 
    [-v|--verbosity] [-- <RunSettings arguments>]

dotnet test [-h|--help]

DESCRIPCIÓNDescription

El comando dotnet test se usa para ejecutar pruebas unitarias en un proyecto determinado.The dotnet test command is used to execute unit tests in a given project. El comando dotnet test inicia la aplicación de la consola de ejecutor de pruebas especificada para un proyecto.The dotnet test command launches the test runner console application specified for a project. El ejecutor de pruebas ejecuta las pruebas que se definen para un marco de pruebas unitarias (por ejemplo, MSTest, NUnit o xUnit) y notifica el éxito o fracaso de cada prueba.The test runner executes the tests defined for a unit test framework (for example, MSTest, NUnit, or xUnit) and reports the success or failure of each test. Si todas las pruebas son correctas, el ejecutor de pruebas devuelve 0 como un código de salida; en caso contrario, si se produce algún error en una prueba, devuelve 1.If all tests are successful, the test runner returns 0 as an exit code; otherwise if any test fails, it returns 1. El ejecutor de pruebas y la biblioteca de pruebas unitarias se empaquetan como paquetes de NuGet y se restauran como dependencias ordinarias para el proyecto.The test runner and the unit test library are packaged as NuGet packages and are restored as ordinary dependencies for the project.

Los proyectos de prueba especifican el ejecutor de pruebas usando un elemento <PackageReference> ordinario, como se puede ver en este archivo de proyecto de ejemplo:Test projects specify the test runner using an ordinary <PackageReference> element, as seen in the following sample project file:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
    <PackageReference Include="xunit" Version="2.4.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
  </ItemGroup>

</Project>

ArgumentosArguments

PROJECT

Ruta de acceso al proyecto de prueba.Path to the test project. Si no se especifica, se toma como predeterminado el directorio actual.If not specified, it defaults to current directory.

OpcionesOptions

-a|--test-adapter-path <PATH_TO_ADAPTER>

Use los adaptadores de prueba personalizados en la ruta especificada de esta ejecución de pruebas.Use the custom test adapters from the specified path in the test run.

--blame

Ejecuta las pruebas en el modo de culpabilidad.Runs the tests in blame mode. Esta opción es útil para aislar las pruebas problemáticas que hacen que el host de prueba se bloquee.This option is helpful in isolating the problematic tests causing test host to crash. Crea un archivo de salida en el directorio actual como Sequence.xml que captura el orden de ejecución de pruebas antes del bloqueo.It creates an output file in the current directory as Sequence.xml that captures the order of tests execution before the crash.

-c|--configuration {Debug|Release}

Define la configuración de compilación.Defines the build configuration. El valor predeterminado es Debug, pero la configuración del proyecto podría invalidar esta configuración predeterminada del SDK.The default value is Debug, but your project's configuration could override this default SDK setting.

--collect <DATA_COLLECTOR_FRIENDLY_NAME>

Habilita el recopilador de datos para la ejecución de pruebas.Enables data collector for the test run. Para obtener más información, consulte Monitor and analyze test run (Supervisar y analizar ejecuciones de pruebas).For more information, see Monitor and analyze test run.

-d|--diag <PATH_TO_DIAGNOSTICS_FILE>

Habilita el modo de diagnóstico para la plataforma de prueba y escribe mensajes de diagnóstico en el archivo especificado.Enables diagnostic mode for the test platform and write diagnostic messages to the specified file.

-f|--framework <FRAMEWORK>

Busca archivos binarios de prueba para un marco específico.Looks for test binaries for a specific framework.

--filter <EXPRESSION>

Filtra las pruebas del proyecto actual con la expresión dada.Filters out tests in the current project using the given expression. Para más información, consulte la sección Detalles de la opción de filtro.For more information, see the Filter option details section. Para obtener más información y ejemplos sobre cómo usar el filtrado de pruebas unitarias selectivas, vea Ejecución de pruebas unitarias selectivas.For more information and examples on how to use selective unit test filtering, see Running selective unit tests.

-h|--help

Imprime una corta ayuda para el comando.Prints out a short help for the command.

-l|--logger <LoggerUri/FriendlyName>

Especifica un registrador para los resultados de pruebas.Specifies a logger for test results.

--no-build

No compila el proyecto de prueba antes de ejecutarlo.Doesn't build the test project before running it. También establece la marca --no-restore de forma implícita.It also implicit sets the --no-restore flag.

--no-restore

No ejecuta una restauración implícita al ejecutar el comando.Doesn't execute an implicit restore when running the command.

-o|--output <OUTPUT_DIRECTORY>

Directorio donde se encuentran los archivos binarios que se ejecutarán.Directory in which to find the binaries to run.

-r|--results-directory <PATH>

El directorio donde se guardarán los resultados de pruebas.The directory where the test results are going to be placed. Si el directorio especificado no existe, se crea.If the specified directory doesn't exist, it's created.

-s|--settings <SETTINGS_FILE>

El archivo .runsettings que se usará para ejecutar las pruebas.The .runsettings file to use for running the tests. Configuración de pruebas unitarias con un archivo .runsettings.Configure unit tests by using a .runsettings file.

-t|--list-tests

Enumera todas las pruebas detectadas en el proyecto actual.List all of the discovered tests in the current project.

-v|--verbosity <LEVEL>

Establece el nivel de detalle del comando.Sets the verbosity level of the command. Los valores permitidos son q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

RunSettings arguments

Argumentos pasados como configuraciones de RunSettings para la prueba.Arguments passed as RunSettings configurations for the test. Los argumentos se especifican como [name]=[value] pares después de "-- " (tenga en cuenta el espacio después de --).Arguments are specified as [name]=[value] pairs after "-- " (note the space after --). Se usa un espacio para separar varios pares de [name]=[value].A space is used to separate multiple [name]=[value] pairs.

Ejemplo: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=TrueExample: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True

Para obtener más información sobre RunSettings, vea vstest.console.exe: Passing RunSettings args (vstest.console.exe: paso de argumentos RunSettings).For more information about RunSettings, see vstest.console.exe: Passing RunSettings args.

EjemplosExamples

Ejecución de las pruebas en el proyecto en el directorio actual:Run the tests in the project in the current directory:

dotnet test

Ejecute las pruebas en el proyecto test1:Run the tests in the test1 project:

dotnet test ~/projects/test1/test1.csproj

Ejecute las pruebas en el proyecto en el directorio actual y genere un archivo de resultados de prueba en formato trx:Run the tests in the project in the current directory and generate a test results file in the trx format:

dotnet test --logger trx

Detalles de la opción de filtroFilter option details

--filter <EXPRESSION>

<Expression> tiene el formato <property><operator><value>[|&<Expression>].<Expression> has the format <property><operator><value>[|&<Expression>].

<property> es un atributo del tipo Test Case.<property> is an attribute of the Test Case. Las siguientes son las propiedades admitidas por los marcos de pruebas unitarias populares:The following are the properties supported by popular unit test frameworks:

Marco de pruebaTest Framework Propiedades admitidasSupported properties
MSTestMSTest
  • FullyQualifiedNameFullyQualifiedName
  • NameName
  • ClassNameClassName
  • PrioridadPriority
  • TestCategoryTestCategory
xUnitxUnit
  • FullyQualifiedNameFullyQualifiedName
  • DisplayNameDisplayName
  • RasgosTraits

<operator> describe la relación entre la propiedad y el valor:The <operator> describes the relationship between the property and the value:

OperadorOperator FunciónFunction
= Coincidencia exactaExact match
!= Coincidencia no exactaNot exact match
~ ContieneContains

<value> es una cadena.<value> is a string. Todas las búsquedas distinguen mayúsculas de minúsculas.All the lookups are case insensitive.

Una expresión sin <operator> automáticamente se considera un contains en la propiedad FullyQualifiedName (por ejemplo, dotnet test --filter xyz es lo mismo que dotnet test --filter FullyQualifiedName~xyz).An expression without an <operator> is automatically considered as a contains on FullyQualifiedName property (for example, dotnet test --filter xyz is same as dotnet test --filter FullyQualifiedName~xyz).

Las expresiones se pueden combinar con operadores condicionales:Expressions can be joined with conditional operators:

OperadorOperator FunciónFunction
| OOR      
& ANDAND

Si usa operadores condicionales (por ejemplo, (Name~TestMethod1) | (Name~TestMethod2)), puede incluir las expresiones entre paréntesis.You can enclose expressions in parenthesis when using conditional operators (for example, (Name~TestMethod1) | (Name~TestMethod2)).

Para obtener más información y ejemplos sobre cómo usar el filtrado de pruebas unitarias selectivas, vea Ejecución de pruebas unitarias selectivas.For more information and examples on how to use selective unit test filtering, see Running selective unit tests.

Vea tambiénSee also