Обзор Microsoft.Testing.Platform
Microsoft.Testing.Platform — это упрощенная и переносимая альтернатива VSTest для выполнения тестов во всех контекстах, включая конвейеры непрерывной интеграции (CI), cli, Visual Studio Test Обозреватель и текст VS Code Обозреватель. Платформа Microsoft.Testing.Platform внедрена непосредственно в тестовые проекты, и нет других зависимостей приложений, например vstest.console
или dotnet test
необходимых для выполнения тестов.
Microsoft.Testing.Platform
имеет значение открытый код. Код можно найти Microsoft.Testing.Platform
в репозитории microsoft/testfx GitHub.
Поддерживаемые тестовые платформы
- MSTest. В MSTest поддержка
Microsoft.Testing.Platform
выполняется с помощью средства запуска MSTest. - NUnit: работа выполняется, дополнительные сведения см. в статье Microsoft Testing Platform for NUnit.
- xUnit: работа выполняется, дополнительные сведения см. в статье Microsoft Testing Platform for xUnit.
Выполнение и отладка тестов
Microsoft.Testing.Platform
тестовые проекты создаются как исполняемые файлы, которые можно запускать напрямую (или отлаживать). Нет дополнительных тестов, выполняемых в консоли или команде. Приложение выходит из ненулевого кода выхода, если возникает ошибка, как правило, с большинством исполняемых файлов. Дополнительные сведения о известных кодах выхода см. в кодах выхода Microsoft.Testing.Platform.
Внимание
По умолчанию Microsoft.Testing.Platform
собирает данные телеметрии. Дополнительные сведения и параметры отказа см. в разделе телеметрии Microsoft.Testing.Platform.
Публикация тестового проекта с помощью dotnet publish
и запуск приложения напрямую — это еще один способ выполнения тестов. Например, выполнение ./Contoso.MyTests.exe
. В некоторых сценариях также можно использовать dotnet build
для создания исполняемого файла, но можно рассмотреть пограничные варианты, такие собственные AOT.
Использование dotnet run
Команду dotnet run
можно использовать для сборки и запуска тестового проекта. Это самый простой, хотя иногда самый медленный способ выполнения тестов. Использование dotnet run
является практическим при локальном редактировании и выполнении тестов, так как он гарантирует, что тестовый проект перестроен при необходимости. dotnet run
также будет автоматически находить проект в текущей папке.
dotnet run --project Contoso.MyTests
Дополнительные сведения см. в dotnet run
разделе dotnet run.
Использование dotnet exec
dotnet
Команда dotnet exec
используется для выполнения (или запуска) уже созданного тестового проекта, это альтернатива запуску приложения напрямую. dotnet exec
требуется путь к библиотеке dll встроенного тестового проекта.
dotnet exec Contoso.MyTests.dll
or
dotnet Contoso.MyTests.dll
Примечание.
Предоставление пути к исполняемому файлу тестового проекта (*.exe) приводит к ошибке:
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\net8.0\Contoso.MyTests.exe'
Дополнительные сведения см. в dotnet exec
dotnet exec.
Использование dotnet test
Microsoft.Testing.Platform
предлагает уровень совместимости и vstest.console.exe
dotnet test
обеспечивает выполнение тестов, как и раньше, при включении нового сценария выполнения.
dotnet test Contoso.MyTests.dll
Параметры
В приведенном ниже списке описаны только параметры платформы. Чтобы просмотреть определенные параметры, представленные каждым расширением, перейдите на страницу документации по расширению или используйте --help
этот параметр.
--diagnostic
Включает ведение журнала диагностики. Уровень журнала по умолчанию .Trace
Файл записывается в выходной каталог со следующим форматом имени. log_[MMddHHssfff].diag
--diagnostic-filelogger-synchronouswrite
Позволяет встроенному средству ведения журнала файлов синхронно записывать журналы. Полезно для сценариев, когда вы не хотите терять записи журнала (если процесс завершается сбоем). Это замедляет выполнение теста.
--diagnostic-output-directory
Выходной каталог журнала диагностики, если файл не указан в каталоге TestResults по умолчанию.
--diagnostic-output-fileprefix
Префикс имени файла журнала. По умолчанию — "log_"
.
--diagnostic-verbosity
Определяет уровень детализации при использовании коммутатора --diagnostic
. Доступные значения: Trace
, Debug
, Information
, Warning
Error
или Critical
.
--help
Выводит описание использования команды.
-ignore-exit-code
Позволяет игнорировать некоторые коды выхода, отличные от нуля, и вместо этого возвращается как 0
. Дополнительные сведения см. в разделе "Игнорировать определенные коды выхода".
--info
Отображает дополнительные сведения о тестовом приложении .NET, например:
- Платформа.
- Среда.
- Каждый зарегистрированный поставщик командной строки, например его,
name
,description
version
иoptions
. - Каждый зарегистрированный инструмент, например его,
command
,name
,version
,description
и все поставщики командной строки.
Эта функция используется для понимания расширений, которые регистрируют один и тот же параметр командной строки или изменения доступных параметров между несколькими версиями расширения (или платформой).
--list-tests
Список доступных тестов. Тесты не будут выполняться.
--minimum-expected-tests
Указывает минимальное количество тестов, которые должны выполняться. По умолчанию ожидается выполнение хотя бы одного теста.
--results-directory
Каталог для сохранения результатов тестов. Если указанный каталог не существует, он создается. По умолчанию используется TestResults
каталог, содержащий тестовое приложение.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по