Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
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.