Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В .NET платформа тестирования и тестовая платформа являются разными компонентами, которые работают вместе для обнаружения и выполнения тестов.
- Платформа тестирования определяет тестовую модель, на которые вы пишете, например MSTest, NUnit, xUnit.net или TUnit.
- Тестовая платформа выполняет тесты, интегрируется с idEs и CLI и предоставляет общие точки расширения.
Вы можете выбрать между двумя тестовых платформами:
- VSTest
- Microsoft.Testing.Platform (MTP)
Подсказка
Для самой простой настройки выберите одну платформу для репозитория и настройте тестовые проекты, CI и средства согласованно для этой платформы. Не комбинируйте тестовые проекты на основе VSTest и Microsoft.Testing.Platform в одном решении или конфигурации запуска, так как этот сценарий не поддерживается. Если вы также запускаете тесты, отличные от .NET, которые зависят от VSTest (например, тестов C++ или JavaScript), выполните эти тесты в отдельных конфигурациях от .NET тестов на основе MTP.
Выбор платформы
Используйте следующие сценарии для быстрого выбора.
| Сценарий использования | Выбрать | Почему |
|---|---|---|
| Вам нужны сценарии выполнения тестов с использованием Native AOT или оптимизации. | Microsoft.Testing.Platform | MTP поддерживает эти современные сценарии развертывания, в то время как VSTest не поддерживает. |
| Вы создаете упакованные тестовые проекты WinUI или UWP. | VSTest | Эти типы проектов в настоящее время не поддерживаются MTP. |
| Необходимо смешивать .NET тесты и адаптеры, отличные от .NET (например, адаптеры JavaScript или C++). | VSTest | VSTest поддерживает адаптеры для смешанных языков, а MTP предназначен только для .NET. |
Вы хотите, чтобы тестовые проекты выполнялись как обычные исполняемые файлы (dotnet runпрямой запуск исполняемого файла, dotnet watchа также потоки F5 для запуска проекта). |
Microsoft.Testing.Platform | MTP ориентирован на выполнение, поэтому тестовые приложения запускаются как стандартные .NET приложения в рабочих процессах на локальной машине и CI (непрерывной интеграции). |
| Вы полагаетесь на давно установленные интеграции в существующих инструментах и системах. | VSTest | VSTest имеет самую длительную историю совместимости в существующих продуктах, задачах и конвейерах. Поддержка MTP растет в экосистеме, но некоторые интеграции могут отстать от VSTest. |
| Вы предпочитаете строгое поведение по умолчанию и явное поведение. | Microsoft.Testing.Platform | MTP способствует детерминированному выполнению с упрощенной моделью расширения и регистрацией времени сборки. Например, он может завершиться ошибкой при отсутствии тестов, уменьшении зависимости среды и отключении отдельных расширений для каждой среды. |
| Вы предпочитаете более мягкие, широкие значения по умолчанию с обратной совместимостью. | VSTest | Обе платформы заботятся о обратной совместимости. VSTest определяет приоритеты по умолчанию, ориентированные на совместимость для различных существующих цепочк инструментов, а MTP обеспечивает обратную совместимость в собственной модели расширения. |
| Вы заблокированы проблемой или поведением, характерным для VSTest, в вашем текущем рабочем процессе. | Microsoft.Testing.Platform | Во многих сценариях один и тот же рабочий процесс не затрагивается при перемещении в MTP из-за различий в модели среды выполнения и архитектуре расширения. |
Если конкретный вариант использования не указан, обе платформы являются подходящими выборами.
Поддержка интеграции и инструментов
| Область интеграции | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| Интеграция с IDE | Зрелая интеграция между Visual Studio и другими средствами, зависящими от протокола VSTest и адаптеров. | Поддерживается в сценариях Visual Studio и Visual Studio Code с текущей интеграцией в частях экосистемы. |
| CI и внешние инструменты | Широкая поддержка как в уже давно используемых инструментах и задачах Microsoft, так и в сторонних средствах. В Azure DevOps можно использовать задачу VSTest (VSTest@3, vstest.console) или задачу .NET (DotNetCoreCLI@2, dotnet test). |
Работает в рабочих процессах CI и современных .NET, но некоторые сторонние интеграции могут по-прежнему отстать от VSTest. В Azure DevOps используйте задачу .NET (DotNetCoreCLI@2, dotnet test). |
dotnet test Поведение |
Режим VSTest по умолчанию. Применяются аргументы и поведение VSTest. | Собственный режим MTP доступен в .NET 10 SDK и более поздних версий. |
Полные сведения о режимах и аргументах см. в dotnet test".
Начало работы с тестовой платформы
Если выбрать VSTest
- MSTest: выполнение тестов с помощью MSTest
- NUnit: NUnit и Microsoft.Testing.Platform
- xUnit.net. Начало работы с xUnit.net
- TUnit: не поддерживается в VSTest. Используйте Microsoft.Testing.Platform.
Если выбрать Microsoft.Testing.Platform
- MSTest: выполнение тестов с помощью MSTest
- NUnit: поддержка Microsoft.Testing.Platform в NUnit (NUnit runner)
- xUnit.net: Платформа тестирования Майкрософт (xUnit.net версии 3)
- TUnit: документация по TUnit
Дальнейшие шаги
- Основные понятия MTP: Обзор Microsoft.Testing.Platform
- Общие сведения о параметрах VSTest: ПАРАМЕТРЫ VSTest
- Миграция из VSTest: миграция из VSTest в Microsoft.Testing.Platform
- Добавление возможностей: функции Microsoft.Testing.Platform