Поделиться через


dotnet test with Microsoft.Testing.Platform (MTP)

Эта статья относится к: ✔️ пакета SDK для .NET 10 и более поздних версий

Имя

dotnet test — драйвер тестирования .NET, используемый для выполнения модульных тестов с помощью Microsoft.Testing.Platform.

Synopsis

dotnet test
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>] 
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <NUMBER>]
    [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-restore]
    [--no-ansi]
    [--no-progress]
    [--output <VERBOSITY_LEVEL>]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [<args>...]

dotnet test -h|--help

Description

С помощью платформы тестирования Майкрософт dotnet test работает быстрее, чем с помощью VSTest. Аргументы, связанные с тестом, больше не исправлены, так как они привязаны к зарегистрированным расширениям в тестовых проектах. Кроме того, MTP поддерживает фильтр глоббинга при выполнении тестов. Дополнительные сведения см. в разделе Microsoft.Testing.Platform.

Предупреждение

Если Microsoft.Testing.Platform включен через global.json, dotnet test ожидает, что все тестовые проекты будут использовать Microsoft.Testing.Platform. Это ошибка, если любой из тестовых проектов использует VSTest.

Неявное восстановление

Вам не нужно выполнять команду dotnet restore, так как она выполняется неявно всеми командами, которые требуют восстановления, например dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish и dotnet pack. Чтобы отключить неявное восстановление, используйте параметр --no-restore.

Команду dotnet restore по-прежнему удобно использовать в некоторых сценариях, где необходимо явное восстановление, например в сборках с использованием непрерывной интеграции в Azure DevOps Services или системах сборки, где требуется явно контролировать время восстановления.

В документации по dotnet restore приведены сведения об управлении каналами NuGet.

Options

Замечание

Вы можете использовать только один из следующих параметров за раз: --project, --solutionили --test-modules. Эти параметры нельзя объединить. Кроме того, при использовании --test-modulesнельзя указать --arch, --configuration, --framework, --osили --runtime. Эти параметры не относятся к уже созданному модулю.

  • --project <PROJECT_PATH>

    Задает путь к запускаемому файлу проекта (имя папки или полный путь). Если значение не задано, по умолчанию используется текущий каталог.

  • --solution <SOLUTION_PATH>

    Указывает путь к файлу решения для запуска (имя папки или полный путь). Если значение не задано, по умолчанию используется текущий каталог.

  • --test-modules <EXPRESSION>

    Фильтрует тестовые модули с помощью глоббинга файлов в .NET. Будут выполняться только тесты, принадлежащие этим тестным модулям. Дополнительные сведения и примеры использования глоббинга файлов в .NET см. в файла.

  • --root-directory <ROOT_PATH>

    Указывает корневой каталог параметра --test-modules. Его можно использовать только с параметром --test-modules.

  • --max-parallel-test-modules <NUMBER>

    Указывает максимальное количество тестовых модулей, которые могут выполняться параллельно. Значение по умолчанию — Environment.ProcessorCount.

  • -a|--arch <ARCHITECTURE>

    Указывает целевую архитектуру. Это сокращенный синтаксис для настройки идентификатора среды выполнения (RID), где указанное значение объединяется с RID по умолчанию. Например, если на компьютере win-x64 указать --arch x86, идентификатору RID присваивается значение win-x86. При использовании этого параметра не используйте параметр -r|--runtime. Этот параметр доступен с выпуска .NET 6, предварительная версия 7.

  • -c|--configuration <CONFIGURATION>

    Определяет конфигурацию сборки. По умолчанию для большинства проектов используется Debug, но вы можете переопределить параметры конфигурации сборки в проекте.

  • -f|--framework <FRAMEWORK>

    Моникер целевой платформы (TFM) целевой платформы для выполнения тестов. Целевая платформа также должна быть указана в файле проекта.

  • --os <OS>

    Позволяет указать целевую операционную систему. Это сокращенный синтаксис для настройки идентификатора среды выполнения (RID), где указанное значение объединяется с RID по умолчанию. Например, если на компьютере win-x64 указать --os linux, идентификатору RID присваивается значение linux-x64. При использовании этого параметра не используйте параметр -r|--runtime. Доступно с .NET 6.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    Целевая среда выполнения для тестирования.

    Короткая форма -r , доступная начиная с пакета SDK для .NET 7.

    Замечание

    Выполнение тестов для решения с глобальным RuntimeIdentifier свойством (явным образом или через --arch--runtimeили--os) не поддерживается. Вместо этого задайте RuntimeIdentifier отдельный уровень проекта.

  • -v|--verbosity <LEVEL>

    Задает уровень детализации команды. Допустимые значения: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic]. Дополнительные сведения см. в разделе LoggerVerbosity.

  • --no-build

    Указывает, что тестовый проект не создается перед запуском. Он также неявно задает флаг --no-restore.

  • --no-restore

    Указывает, что неявное восстановление не выполняется при выполнении команды.

  • --no-ansi

    Отключает вывод escape-символов ANSI на экран.

  • --no-progress

    Отключает ход выполнения отчетов на экран.

  • --output <VERBOSITY_LEVEL>

    Указывает детализацию выходных данных при составлении отчетов. Допустимые значения — Normal и Detailed. Значение по умолчанию — Normal.

  • --no-launch-profile

    Не пытайтесь использовать launchSettings.json для настройки приложения. По умолчанию используется, launchSettings.json который может применять переменные среды и аргументы командной строки к тестовому исполняемому файлу.

  • --no-launch-profile-arguments

    Не используйте аргументы, commandLineArgs указанные в профиле запуска для запуска приложения.

  • --property:<NAME>=<VALUE>

    Задает одно свойство MSBuild или несколько. Укажите несколько свойств, повторив параметр:

    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    Короткая форма -p может использоваться для --property. То же самое относится к /property:property=value, а его короткая форма — /p. Дополнительные сведения о доступных аргументах см. в документации dotnet msbuild.

  • -?|-h|--help

    Выводит описание использования команды.

  • args

    Указывает дополнительные аргументы для передачи тестовых приложений. Для разделения аргументов используйте пробел. Дополнительные сведения и примеры передачи см. в обзоре Microsoft.Testing.Platform и расширениях Microsoft.Testing.Platform.

    Подсказка

    Чтобы указать дополнительные аргументы для определенных проектов, используйте свойство MSBuild TestingPlatformCommandLineArguments.

Замечание

Чтобы включить ведение журнала трассировки в файл, используйте переменную среды DOTNET_CLI_TEST_TRACEFILE, чтобы предоставить путь к файлу трассировки.

Примеры

  • Запустите тесты в проекте или решении в текущем каталоге:

    dotnet test
    
  • Выполнение тестов в проекте TestProject:

    dotnet test --project ./TestProject/TestProject.csproj
    
  • Запустите тесты в решении TestProjects:

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • Запустите тесты с помощью TestProject.dll сборки:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • Запустите тесты с помощью сборки TestProject.dll с корневым каталогом:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • Запустите тесты в текущем каталоге с покрытием кода:

    dotnet test --coverage
    
  • Запустите тесты в проекте, указав TestProject аргумент -bl(двоичный msbuild журнал) для следующих значений:

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • Запустите тесты в TestProject проекте, присвойв свойству MSBuild DefineConstants значение DEV:

    dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"
    

См. также