Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft.Testing.Platform — это упрощенная и переносимая альтернатива VSTest для выполнения тестов во всех контекстах, включая непрерывную интеграцию (CI), pipelines, CLI, Visual Studio обозреватель тестов и обозреватель тестов VS Code. Платформа Microsoft.Testing.Platform внедрена непосредственно в тестовые проекты и не существует других зависимостей приложений, таких как vstest.console или dotnet test, необходимых для выполнения тестов.
Совет
Если вам нужна помощь в выборе между VSTest и Microsoft.Testing.Platform, начните с обзора платформ тестирования.
Используйте эту статью, когда вы уже решили использовать Microsoft.Testing.Platform и хотите понять ее модель, возможности и рабочее поведение.
Microsoft.Testing.Platform является открытым исходным кодом. Код Microsoft.Testing.Platform можно найти в репозитории microsoft/testfx GitHub.
Начните здесь
Используйте следующий путь в зависимости от того, что вам нужно дальше.
- Выполнение и отладка тестов из ИНТЕРФЕЙСА командной строки, интегрированной среды разработки или CI: запуск и отладка тестов
- Понимание поведения платформы в CLI: Тестирование с
dotnet test - Найдите параметры CLI для платформы и расширений в одном месте: справочник по параметрам CLI Microsoft.Testing.Platform
- Настройка средств выполнения фреймворков: Запуск тестов с помощью MSTest или с поддержкой Microsoft.Testing.Platform в NUnit (NUnit runner)
- Миграция существующей установки VSTest: переход с VSTest на Microsoft.Testing.Platform
- Добавить диагностику, охват и отчеты: возможности Microsoft.Testing.Platform
- Создание собственного расширения: архитектура Microsoft.Testing.Platform, точки расширения и службы
Основные принципы Microsoft.Testing.Platform
Эта новая платформа тестирования основана на опыте команды по тестированию опыта разработчиков .NET и направлена на решение проблем, возникших со времени выпуска .NET Core в 2016 году. Хотя существует высокий уровень совместимости между платформой .NET Framework и .NET Core/.NET, некоторые ключевые функции, такие как плагин-система, и новые возможные форм-факторы компиляции .NET затруднили развитие или полноценную поддержку новой функции выполнения в рамках текущей архитектуры платформы VSTest.
Основные движущие факторы для развития новой платформы тестирования подробно описаны следующим образом.
детерминированность. Обеспечение того, что выполнение одних и того же теста в разных контекстах (local, CI) приведет к тому же результату. Новая среда выполнения не зависит от отражения или других функций динамической .NET среды выполнения для координации тестового выполнения.
прозрачность среды выполнения: Среда выполнения тестирования не вмешивается в код платформы тестирования, она не создает изолированные контексты, такие как
AppDomainилиAssemblyLoadContext, и не использует рефлексию или пользовательские средства разрешения сборок.Регистрация расширений во время компиляции: расширения, такие как тестовые фреймворки и внутр- и внепроцессные расширения, регистрируются во время компиляции, чтобы обеспечить детерминизм и упростить обнаружение несоответствий.
Нулевые зависимости: Ядро платформы — это одна сборка .NET,
Microsoft.Testing.Platform.dll, которая не имеет других зависимостей, кроме поддерживаемых сред выполнения.Hostable: среда выполнения тестирования может размещаться в любом приложении .NET. Хотя консольное приложение обычно используется для выполнения тестов, вы можете создать тестовое приложение в любом типе .NET приложения. Это позволяет выполнять тесты в специальных контекстах, таких как устройства или браузеры, где могут быть ограничения.
Поддержка всех .NET форм-факторов: поддержка текущих и будущих .NET форм-факторов, включая нативный AOT.
Производительность: поиск правильного баланса между функциями и точками расширения, чтобы избежать раздувания среды выполнения с использованием несущественного кода. Новая тестовая платформа предназначена для "оркестрации" тестового запуска, а не предоставления подробностей о его выполнении.
Достаточно расширяемая: новая платформа построена на принципах расширяемости, чтобы обеспечить максимальную настройку выполнения в рабочем окружении. Он позволяет настроить узел тестового процесса, наблюдать за процессом тестирования и использовать сведения из платформы тестирования в процессе узла тестирования.
развертывание одного модуля. Функция хостинга позволяет использовать модель развертывания одного модуля, при которой один результат компиляции может поддерживать все точки расширяемости, как в режиме вне процесса, так и в режиме внутри процесса, без необходимости поставки различных исполняемых модулей.
Поддерживаемые платформы тестирования
- MSTest. Поддержка
Microsoft.Testing.Platformв MSTest выполняется через инструмент MSTest. - NUnit. В NUnit поддержка
Microsoft.Testing.Platformосуществляется через NUnit runner. - xUnit.net. Дополнительные сведения см. в Microsoft Testing Platform (xUnit.net v3) и Microsoft Testing Platform (xUnit.net v2) в документации по xUnit.net.
- TUnit: полностью построен на основе
Microsoft.Testing.Platform. Для получения дополнительной информации смотрите документацию по TUnit.
Поддерживаемые целевые платформы
Microsoft.Testing.Platform поддерживает .NET (.NET 8 и более поздних версий), .NET Framework (версии 4.6.2 и более поздних версий) и предназначен для NETStandard 2.0 для обеспечения максимальной совместимости с другими средами выполнения.
Выполнение и отладка тестов
Подробные инструкции по запуску и отладке тестовых проектов MTP из CLI, Visual Studio, Visual Studio Code и CI pipelines см. в разделе Run and debug test.
Опции
Полный список параметров командной строки платформы и расширения см. в справочнике по параметрам командной строки Microsoft.Testing.Platform.
Интеграция MSBuild
Пакет NuGet Microsoft.Testing.Platform.MSBuild предоставляет различные интеграции для Microsoft.Testing.Platform с MSBuild:
- Поддержка
dotnet test. Дополнительные сведения см. в разделе "Тестирование с помощью dotnet test". - Поддержка
ProjectCapability, требуемая дляVisual StudioиVisual Studio Codeобозревателей тестов. - Автоматическое создание точки входа (метод
Main). - Автоматическое создание файла конфигурации.
- Автоматическое обнаружение и регистрация установленных пакетов расширений.
Если этот пакет активен (по умолчанию для тестовых сред выполнения MSTest, NUnit и xUnit), всё, что нужно — это установка пакета NuGet расширения, так как расширения регистрируются автоматически, без изменений в коде. Если вы отключите автоматическую точку входа, задав параметр <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>, необходимо зарегистрировать расширения вручную в методе Main . Каждая страница расширения документирует свой вызов регистрации вручную.
Заметка
Эта интеграция работает в транзитивном режиме (проект, ссылающийся на другой проект, который ссылается на этот пакет, будет вести себя так, как если бы он ссылался на пакет) и может быть отключена с помощью свойства IsTestingPlatformApplication MSBuild.