dotnet testdotnet test

Эта статья применима к: ✓ пакету SDK для .NET Core 1.x пакету SDK для .NET Core 2.xThis topic applies to: ✓ .NET Core SDK 1.x .NET Core SDK 2.x

nameName

dotnet test — драйвер тестов .NET, используемый для проведения модульных тестов.dotnet test - .NET test driver used to execute unit tests.

Краткий обзорSynopsis

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]

ОписаниеDescription

Команда dotnet test служит для выполнения модульных тестов в проекте.The dotnet test command is used to execute unit tests in a given project. Команда dotnet test запускает консольное приложение средства выполнения тестов, указанное для проекта.The dotnet test command launches the test runner console application specified for a project. Средство выполнения тестов запускает тесты, определенные для платформы модульного тестирования (например, MSTest, NUnit или xUnit) и сообщает об успешном или неудачном выполнении каждого из них.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. Если все тесты выполнены успешно, средство выполнения тестов возвращает код 0. Если же любой тест завершается с ошибкой, средство выполнения возвращает 1.If all tests are successful, the test runner returns 0 as an exit code; otherwise if any test fails, it returns 1. Средство выполнения тестов и библиотека модульных тестов упаковываются в пакеты NuGet и восстанавливаются как обычные зависимости проекта.The test runner and the unit test library are packaged as NuGet packages and are restored as ordinary dependencies for the project.

Тестовый проект указывает средство выполнения тестов с помощью обычного элемента <PackageReference>, как показано в следующем примере файла проекта: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="15.9.0" />
    <PackageReference Include="xunit" Version="2.4.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
  </ItemGroup>

</Project>

АргументыArguments

PROJECT

Путь к тестовому проекту.Path to the test project. Если значение не задано, по умолчанию используется текущий каталог.If not specified, it defaults to current directory.

ПараметрыOptions

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

Используйте пользовательские адаптеры теста из указанного пути в тестовом запуске.Use the custom test adapters from the specified path in the test run.

--blame

Выполнение тестов в режиме обвинения.Runs the tests in blame mode. Этот параметр полезен при изоляции проблемных тестов, которые приводят к аварийному завершению хоста для тестов.This option is helpful in isolating the problematic tests causing test host to crash. Он создает в текущем каталоге выходной файл Sequence.xml, который записывает порядок выполнения тестов перед сбоем.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}

Определяет конфигурацию сборки.Defines the build configuration. Значение по умолчанию — Debug, но конфигурация проекта может переопределить этот параметр SDK по умолчанию.The default value is Debug, but your project's configuration could override this default SDK setting.

--collect <DATA_COLLECTOR_FRIENDLY_NAME>

Включает сборщик данных для тестового запуска.Enables data collector for the test run. Дополнительные сведения см. в разделе Мониторинг и анализ тестового запуска.For more information, see Monitor and analyze test run.

-d|--diag <PATH_TO_DIAGNOSTICS_FILE>

Включает режим диагностики для платформы тестирования и записывает диагностические сообщения в указанный файл.Enables diagnostic mode for the test platform and write diagnostic messages to the specified file.

-f|--framework <FRAMEWORK>

Ищет тестовые двоичные файлы для определенной платформы.Looks for test binaries for a specific framework.

--filter <EXPRESSION>

Фильтрует тесты в текущем проекте с помощью заданного выражения.Filters out tests in the current project using the given expression. Дополнительные сведения см. в разделе Сведения о параметре "Фильтр".For more information, see the Filter option details section. Дополнительные сведения и примеры использования фильтрации при выборочном модульном тестировании см. в статье Выполнение выборочных модульных тестов.For more information and examples on how to use selective unit test filtering, see Running selective unit tests.

-h|--help

Выводит краткую справку по команде.Prints out a short help for the command.

-l|--logger <LoggerUri/FriendlyName>

Указывает средство ведения журнала для результатов тестирования.Specifies a logger for test results.

--no-build

Не выполняет сборку тестового проекта перед запуском.Doesn't build the test project before running it. Он также неявно задает флаг --no-restore.It also implicit sets the --no-restore flag.

--no-restore

Не выполняет неявное восстановление при выполнении команды.Doesn't execute an implicit restore when running the command.

-o|--output <OUTPUT_DIRECTORY>

Каталог, в котором выполняется поиск двоичных файлов для выполнения.Directory in which to find the binaries to run.

-r|--results-directory <PATH>

Каталог для сохранения результатов тестов.The directory where the test results are going to be placed. Если указанный каталог не существует, он создается.If the specified directory doesn't exist, it's created.

-s|--settings <SETTINGS_FILE>

Параметры, используемые при выполнении тестов.Settings to use when running tests.

-t|--list-tests

Отображение списка всех обнаруженных тестов в текущем проекте.List all of the discovered tests in the current project.

-v|--verbosity <LEVEL>

Задает уровень детализации команды.Sets the verbosity level of the command. Допустимые значения: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

RunSettings arguments

Аргументы, передаваемые в качестве конфигураций RunSettings для теста.Arguments passed as RunSettings configurations for the test. Аргументы задаются в виде пар [name]=[value] после "-- " (обратите внимание на пробел после --).Arguments are specified as [name]=[value] pairs after "-- " (note the space after --). Несколько пар [name]=[value] разделяются пробелами.A space is used to separate multiple [name]=[value] pairs.

Пример: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=TrueExample: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True

Дополнительные сведения о RunSettings см. в статье о передаче аргументов RunSettings в командной строке.For more information about RunSettings, see vstest.console.exe: Passing RunSettings args.

ПримерыExamples

Выполнение тестов в проекте в текущем каталоге:Run the tests in the project in the current directory:

dotnet test

Выполнение тестов в проекте test1:Run the tests in the test1 project:

dotnet test ~/projects/test1/test1.csproj

Выполнение тестов в проекте в текущем каталоге и создание файл результатов теста в формате 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

Сведения о параметре "Фильтр"Filter option details

--filter <EXPRESSION>

Параметр <Expression> имеет следующий формат: <property><operator><value>[|&<Expression>].<Expression> has the format <property><operator><value>[|&<Expression>].

<property> — это атрибут Test Case.<property> is an attribute of the Test Case. Ниже приведены свойства, поддерживаемые популярными платформами модульных тестов.The following are the properties supported by popular unit test frameworks:

Тестовая платформаTest Framework Поддерживаемые свойстваSupported properties
MSTestMSTest
  • FullyQualifiedNameFullyQualifiedName
  • nameName
  • ClassNameClassName
  • ПриоритетPriority
  • TestCategoryTestCategory
xUnitxUnit
  • FullyQualifiedNameFullyQualifiedName
  • DisplayNameDisplayName
  • ПризнакиTraits

<operator> описывает связь между свойством и значением:The <operator> describes the relationship between the property and the value:

ОператорOperator ФункцияFunction
= Точное соответствиеExact match
!= Неточное соответствиеNot exact match
~ СодержитContains

<value> — это строка.<value> is a string. Поиск выполняется без учета регистра.All the lookups are case insensitive.

Выражение без <operator> автоматически считается функцией contains для свойства FullyQualifiedName (например, dotnet test --filter xyz совпадает с 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).

Выражения можно объединять с условными операторами.Expressions can be joined with conditional operators:

ОператорOperator ФункцияFunction
| OROR      
& ANDAND

При использовании условных операторов выражения можно заключать в скобки (например, (Name~TestMethod1) | (Name~TestMethod2)).You can enclose expressions in parenthesis when using conditional operators (for example, (Name~TestMethod1) | (Name~TestMethod2)).

Дополнительные сведения и примеры использования фильтрации при выборочном модульном тестировании см. в статье Выполнение выборочных модульных тестов.For more information and examples on how to use selective unit test filtering, see Running selective unit tests.

См. такжеSee also