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