Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
MSTest, Microsoft Testing Framework, является полностью поддерживаемой платформой тестирования с открытым исходным кодом и кроссплатформенной платформой для приложений .NET. Он позволяет создавать и выполнять тесты, а также предоставляет наборы тестов с интеграцией с Visual Studio и обозревателями тестов Visual Studio Code, интерфейсом командной строки .NET и многими конвейерами CI.
MSTest размещается в GitHub и работает со всеми поддерживаемыми целевыми объектами .NET.
Ключевые особенности
MSTest предоставляет комплексные возможности тестирования:
- Тестирование на основе данных: выполнение тестов с несколькими входными данными с помощью
DataRowDynamicDataи внешних источников данных. - Управление жизненным циклом тестирования: настройка и очистка на уровнях сборки, класса и тестирования.
- Параллельное выполнение: одновременно выполняйте тесты, чтобы сократить время выполнения.
- Тестовая организация: классификация, приоритет и фильтрация тестов с помощью атрибутов метаданных.
- Анализаторы кода: обнаружение распространенных проблем и применение рекомендаций во время компиляции.
- Утверждения: комплексные методы утверждения для проверки результатов.
Поддерживаемые платформы
MSTest поддерживает широкий спектр платформ .NET и целевых платформ. В следующей таблице приведены общие сведения о поддержке платформы и специальных рекомендациях.
| Platform | Целевые платформы | Поддержка потоков | Специальные атрибуты | Примечания. |
|---|---|---|---|---|
| .NET | .NET 8+ | Полная параллелизация | Все атрибуты | Рекомендуется для новых проектов |
| .NET Framework | 4.6.2+ | Полная параллелизация | Все атрибуты | Полная поддержка функций |
| UWP | UAP 10, .NET 9+ с UAP | Поток пользовательского интерфейса | UITestMethod |
Требуются <UseUwp>true</UseUwp>настройки; см. пример UWP |
| WinUI 3 | .NET 8+ | Поток пользовательского интерфейса | UITestMethod |
Требуется пакет SDK для приложений Windows; См . пример WinUI |
| Нативный AOT | .NET 8+ | Полная параллелизация | Большинство атрибутов | Ограниченный набор функций; см. пример native AOT |
Особенности, связанные с платформой
Тестирование UWP
Тесты UWP выполняются в контейнере приложений UWP и требуют потока пользовательского интерфейса для многих операций:
[TestClass]
public class UwpTests
{
[UITestMethod]
public void TestUwpControl()
{
// Test runs on UI thread
var button = new Button();
Assert.IsNotNull(button);
}
}
Сведения о настройке UWP см. в примере BlankUwpNet9App.
Тестирование WinUI 3
Тесты WinUI 3 также требуют доступа к потокам пользовательского интерфейса для тестирования визуальных компонентов:
[TestClass]
public class WinUITests
{
[UITestMethod]
public void TestWinUIControl()
{
// Test runs on UI thread
var window = new MainWindow();
Assert.IsNotNull(window);
}
}
Сведения о настройке WinUI см. в примере BlankWinUINet9App и примере MSTestRunnerWinUI.
Встроенный AOT
Нативная компиляция AOT поддерживается с некоторыми ограничениями из-за ограниченных возможностей отражения. Используйте генераторы источников, где это возможно, и протестируйте сценарии AOT с помощью примера NativeAotRunner.
Поддержка потоков STA
В сценариях взаимодействия с Windows COM MSTest предоставляет STATestClass и STATestMethod атрибуты для выполнения тестов в однопоточном пространстве. Дополнительные сведения о потоке STA, в том числе поддержку асинхронного продолжения с UseSTASynchronizationContext, см. в Threading attributes.
Исполняющие средства тестирования
MSTest поддерживает две платформы выполнения тестов:
- Microsoft.Testing.Platform (MTP): современная рекомендуемая тестовая платформа с улучшенной производительностью и расширяемостью.
- VSTest: исходная и стандартная тестовая платформа для .NET.
Для новых проектов рекомендуется использовать Microsoft.Testing.Platform (MTP) с MSTest.Sdk.
Политика поддержки MSTest
Начиная с версии 3.0.0, MSTest строго следует семантике управления версиями.
Команда MSTest поддерживает только последнюю выпущенную версию и настоятельно рекомендует пользователям всегда обновлять последнюю версию, чтобы воспользоваться улучшениями и исправлениями безопасности. Предварительные версии выпусков не поддерживаются корпорацией Майкрософт, но предлагаются для общедоступного тестирования перед окончательным выпуском.
История версий
MSTest пережила значительную эволюцию в основных версиях:
- MSTest версии 1: исходная платформа тестирования Visual Studio
- MSTest версии 2: первый выпуск с открытым исходным кодом с кроссплатформенной поддержкой
- MSTest v3: современная переработка с улучшенной архитектурой и функциями
- MSTest версии 4: текущая версия с расширенными функциями
Дополнительные сведения обо всех выпусках см. в журнале изменений MSTest.
Если вы обновляете более раннюю версию, ознакомьтесь с руководствами по миграции:
Кардинальные изменения
Команда MSTest тщательно проверяет и сводит к минимуму изменения, нарушающие совместимость. Если изменения с нарушением совместимости необходимы, команда использует объявления GitHub и метки на изменения с нарушением совместимости в задачах, чтобы заранее информировать сообщество, давая пользователям время предоставлять отзывы и выражать свои опасения перед выпуском изменений.