Выполнение модульных тестов с помощью обозревателя тестов
Используйте обозреватель тестов для выполнения модульных тестов из проектов Visual Studio или сторонних проектов модульных тестов. В обозревателе тестов можно группировать тесты в категории, фильтровать список тестов и создавать, сохранять и запускать списки воспроизведения тестов. Обозреватель тестов также можно использовать для модульных тестов отладки и в Visual Studio Enterprise для анализа покрытия кода.
Обозреватель тестов может выполнять тесты из нескольких тестовых проектов в решении и из классов тестов, которые являются частью проектов рабочего кода. Тестовые проекты могут использовать различные платформы модульных тестов. Когда тестируемый код написан для .NET, тестовый проект можно написать на любом языке, который также предназначен для .NET независимо от языка целевого кода. Необходимо протестировать собственные проекты кода C и C++ с помощью платформы модульного тестирования C++.
Создание тестового проекта
Если у вас еще нет тестового проекта, настроенного в решении Visual Studio, сначала необходимо создать и создать тестовый проект. Используйте следующие ресурсы:
Visual Studio включает платформы модульных тестов Майкрософт для управляемого и машинного кода. Однако обозреватель тестов также может запускать любую платформу модульных тестов, которая реализовала адаптер обозревателя тестов. Дополнительные сведения об установке сторонних платформ модульных тестов см. в разделе Установка платформ модульных тестов.
Выполнение тестов в обозревателе тестов
При сборке тестового проекта тесты отображаются в обозревателе тестов. Если обозреватель тестов не отображается, выберите тест в меню Visual Studio, а затем выберите обозреватель тестов (или нажмите клавиши CTRL+E, T).
При выполнении, написании и повторном запуске тестов обозреватель тестов отображает результаты по умолчанию в группировке по проекту , пространству имен и классу . Вы можете изменить способ группировать тесты в обозревателе тестов.
Вы можете выполнять большую часть работы по поиску, организации и выполнению тестов на панели инструментов обозревателя тестов.
Выполнение тестов
Выберите один из следующих вариантов выполнения тестов:
Чтобы выполнить все тесты в решении, выберите значок Выполнить все (или нажмите клавиши Ctrl+R, V).
Чтобы выполнить все тесты в группе по умолчанию, щелкните значок Выполнить и выберите группу в меню.
Чтобы выполнить отдельные тесты, выберите один или несколько тестов, щелкните правой кнопкой мыши в области, а затем выберите запустить выбранные тесты (или нажмите клавиши CTRL+R, T).
Если отдельные тесты не имеют зависимостей, которые препятствуют их выполнению в любом порядке, включите параллельное выполнение теста в меню параметров панели инструментов. Это действие может сократить время выполнения всех тестов.
Заметка
Сведения о настройке целевой платформы (архитектуры процессов) для выполнения модульных тестов см. в разделе Настройка архитектуры процессов для модульного теста.
Выполнение тестов после каждой сборки
Чтобы запускать модульные тесты после каждой локальной сборки, нажмите на значок настроек на панели инструментов обозревателя тестов, затем выберите Выполнить тесты после сборки.
Просмотр результатов теста
При выполнении, записи и повторном запуске тестов обозреватель тестов отображает результаты в группах неудачных тестов, пройденных тестов, пропущенных тестови не запущенных тестов. В области сведений в нижней или боковой части обозревателя тестов отображается сводка по выполнению теста.
Просмотр сведений о тесте
Чтобы просмотреть сведения о отдельном тесте, выберите тест.
В области сведений о тестировании отображаются следующие сведения:
Имя исходного файла и номер строки метода теста.
Состояние теста.
Время, прошедшее с момента запуска тестового метода.
Если тест завершается сбоем, в области сведений также отображается следующее:
Сообщение о том, что платформа модульного теста возвращается для теста.
Трассировка стека в момент сбоя теста.
Просмотр исходного кода метода теста
Чтобы отобразить исходный код для метода тестирования в редакторе Visual Studio, щелкните тест правой кнопкой мыши и выберите Открыть тест (или выберите клавишу F12).
Группируйте и фильтруйте список тестов
В обозревателе тестов можно сгруппировать тесты в стандартные категории. Большинство платформ модульных тестов, которые выполняются в обозревателе тестов, позволяют определять собственные категории и пары категорий и значений для группировки тестов. Вы также можете фильтровать список тестов, сопоставляя строки по свойствам теста.
Группирование тестов в списке тестов
Обозреватель тестов позволяет сгруппировать тесты в иерархию. Группирование иерархий по умолчанию — Project, пространство имен, а затем класс. Чтобы изменить способ упорядочения тестов, нажмите кнопку «Группировать по», а затем выберите новый критерий группировки.
Вы можете определить собственные уровни иерархии (группировать по состоянию, а затем класса, например), выбрав параметры Group By в предпочтительном порядке.
Обозреватель тестов позволяет сгруппировать тесты в иерархию. Группирование иерархий по умолчанию — Project, пространство имен, а затем класс. Чтобы изменить способ упорядочения тестов, нажмите кнопку «Группировать по», а затем выберите новый критерий группировки.
Вы можете определить собственные уровни иерархии (группировать по состоянию, а затем класса, например), выбрав параметры Group By в предпочтительном порядке.
Группы обозревателя тестов
Группа | Описание |
---|---|
длительность | Группирует тесты по времени выполнения: быстрые, средний, медленные. |
состояния | Группирует тесты по результатам выполнения: неудачных тестов, пропущенных тестов, пройденные тесты, не запущенные. |
Целевая структура | Группирует тесты по фреймворку, на который нацелены их проекты. |
Пространства имен | Группирует тесты по содержащему их пространству имен. |
Проект | Группирует тесты по содержащему их проекту. |
класс | Группирует тесты по содержащему классу. |
Черты
Признак обычно является парой имени и значения категории, но также может быть единственной категорией. Признаки можно назначать методам, которые платформа модульных тестов определяет как методы тестирования.
Платформа модульного тестирования может определять категории признаков. Вы можете добавлять значения в категории характеристик, чтобы определить собственные пары "категория-значение". Платформа модульного теста определяет синтаксис для указания категорий и значений признака.
Характеристики в фреймворке модульного тестирования Microsoft для управляемого кода
В Microsoft Unit Testing Framework для управляемого кода вы определяете пару имени и значения признака в атрибуте TestPropertyAttribute. Платформа тестирования также содержит эти предопределенные признаки:
Черта | Описание |
---|---|
OwnerAttribute | Категория Owner определяется фреймворком модульного тестирования и требует предоставить строковое значение владельца. |
PriorityAttribute | Категория Priority определяется платформой модульных тестов и требует предоставления целочисленного значения приоритета. |
TestCategoryAttribute | Атрибут TestCategory позволяет указать категорию модульного теста. |
TestPropertyAttribute | Атрибут TestProperty позволяет определить пару категорий и значений признака. |
Признаки в Microsoft Unit Testing Framework для C++
См. использование Платформы модульного тестирования Майкрософт для C++ в Visual Studio.
Создание настраиваемых списков воспроизведения
Вы можете создать и сохранить список тестов, которые вы хотите запустить или просмотреть группой. При выборе списка воспроизведения тесты в списке отображаются на новой вкладке обозревателя тестов. Вы можете добавить тест в несколько списков воспроизведения.
Чтобы создать список воспроизведения, следуйте этим шагам.
- Выберите один или несколько тестов в обозревателе тестов.
- Щелкните правой кнопкой мыши на панели, наведите указатель на Добавить в Список воспроизведения, а затем выберите Новый Список воспроизведения.
Откроется список воспроизведения на новой вкладке обозревателя тестов. Этот список воспроизведения можно использовать один раз, а затем удалить. Можно также выбрать кнопку Сохранить на панели инструментов окна плейлиста, а затем указать имя и место для сохранения плейлиста.
Чтобы открыть список воспроизведения:
- На панели инструментов Visual Studio щелкните значок списка воспроизведения.
- В меню выберите ранее сохраненный файл списка воспроизведения.
Чтобы изменить список воспроизведения, используйте один из следующих вариантов:
Щелкните правой кнопкой мыши любой тест, а затем используйте команды меню, чтобы добавить или удалить из плейлиста.
На панели инструментов нажмите кнопку Изменить список воспроизведения. Флажки, которые отображаются рядом с тестами, показывают, какие тесты включены и исключены в плейлисте. Измените группы по желанию. Эта возможность запущена в Visual Studio 2019 версии 16.7.
Вы также можете выбрать или очистить поля для родительских групп в иерархии. Это действие создает динамический список воспроизведения, который всегда обновляет список воспроизведения на основе тестов, которые находятся в этой группе.
Например, если установить флажок рядом с классом, любой тест, добавленный из этого класса, становится частью этого списка воспроизведения. При удалении теста из этого класса он удаляется из плейлиста.
Дополнительные сведения о правилах можно узнать, сохранив список воспроизведения с помощью кнопки "Сохранить" на панели инструментов, а затем открыв XML-файл .playlist, созданный на диске. Этот файл содержит все правила и отдельные тесты, составляющие плейлист.
Если вы хотите создать список воспроизведения для атрибутов, используйте следующий формат для фреймворка MSTest:
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Property Name="Trait" Value="SchemaUpdateBasic" />
</Rule>
</Playlist>
Используйте следующий формат для платформы xUnit. Убедитесь, что между именем TestCategory
и значением [Value]
есть пробел.
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Rule Match="All">
<Property Name="Solution" />
<Rule Match="Any">
<Property Name="Trait" Value="TestCategory [Value]" />
</Rule>
</Rule>
</Rule>
</Playlist>
Вы можете создать и сохранить список тестов, которые вы хотите запустить или просмотреть группой. При выборе списка воспроизведения тесты в списке отображаются на новой вкладке обозревателя тестов. Вы можете добавить тест в несколько списков воспроизведения.
Чтобы создать список воспроизведения, следуйте этим шагам.
- Выберите один или несколько тестов в обозревателе тестов.
- Щелкните правой кнопкой мыши на панели, наведите указатель на Добавить в Список воспроизведения, а затем выберите Новый Список воспроизведения.
Откроется список воспроизведения на новой вкладке обозревателя тестов. Этот список воспроизведения можно использовать один раз, а затем удалить. Можно также выбрать кнопку Сохранить на панели инструментов окна плейлиста, а затем указать имя и место для сохранения плейлиста.
Чтобы открыть список воспроизведения:
- На панели инструментов Visual Studio щелкните значок списка воспроизведения.
- В меню выберите ранее сохраненный файл списка воспроизведения.
Чтобы изменить список воспроизведения, используйте один из следующих вариантов:
Щелкните правой кнопкой мыши любой тест, а затем используйте команды меню, чтобы добавить или удалить из плейлиста.
На панели инструментов нажмите кнопку Изменить список воспроизведения. Флажки, которые отображаются рядом с тестами, показывают, какие тесты включены и исключены в плейлисте. Измените группы по желанию. Эта возможность запущена в Visual Studio 2019 версии 16.7.
Вы также можете выбрать или очистить поля для родительских групп в иерархии. Это действие создает динамический список воспроизведения, который всегда обновляет список воспроизведения на основе тестов, которые находятся в этой группе.
Например, если установить флажок рядом с классом, любой тест, добавленный из этого класса, становится частью этого списка воспроизведения. При удалении теста из этого класса он удаляется из плейлиста.
Дополнительные сведения о правилах можно узнать, сохранив список воспроизведения с помощью кнопки "Сохранить" на панели инструментов, а затем открыв XML-файл .playlist, созданный на диске. Этот файл содержит все правила и отдельные тесты, составляющие плейлист.
Если вы хотите создать список воспроизведения для атрибутов, используйте следующий формат для фреймворка MSTest:
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Property Name="Trait" Value="SchemaUpdateBasic" />
</Rule>
</Playlist>
Используйте следующий формат для платформы xUnit. Убедитесь, что между именем TestCategory
и значением [Value]
есть пробел.
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Rule Match="All">
<Property Name="Solution" />
<Rule Match="Any">
<Property Name="Trait" Value="TestCategory [Value]" />
</Rule>
</Rule>
</Rule>
</Playlist>
Столбцы обозревателя тестов
Группы также доступны в обозревателе тестов в виде столбцов, наряду с Признаками, Трассировкой стека, Сообщением об ошибкеи Полным именем. Большинство столбцов по умолчанию не отображаются. Вы можете настроить, какие столбцы отображаются.
Столбцы могут быть отфильтрованы, переупорядочены и отсортированы:
Чтобы отфильтровать определенные характеристики, выберите значок фильтра в верхней части столбца характеристики.
Чтобы изменить порядок столбцов, выберите заголовок столбца и перетащите его влево или вправо.
Чтобы отсортировать столбец, выберите заголовок столбца. Не все столбцы можно сортировать. Вы также можете сортировать по дополнительному столбцу, удерживая клавишу SHIFT и выбрав дополнительный заголовок столбца.
Столбцы обозревателя тестов
Группы также доступны в обозревателе тестов в виде столбцов, наряду с Признаками, Трассировкой стека, Сообщением об ошибкеи Полным именем. Большинство столбцов по умолчанию не отображаются. Вы можете настроить, какие столбцы отображаются.
Столбцы могут быть отфильтрованы, переупорядочены и отсортированы:
Чтобы отфильтровать определенные характеристики, выберите значок фильтра в верхней части столбца характеристики.
Чтобы изменить порядок столбцов, выберите заголовок столбца и перетащите его влево или вправо.
Чтобы отсортировать столбец, выберите заголовок столбца. Не все столбцы можно сортировать. Вы также можете сортировать по дополнительному столбцу, удерживая клавишу SHIFT и выбрав дополнительный заголовок столбца.
Поиск и фильтрация списка тестов
Вы также можете использовать фильтры поиска обозревателя тестов, чтобы ограничить методы тестирования в проектах, которые вы просматриваете и запускаете.
При вводе строки в поле поиска Test Explorer и нажатии клавиши Enter список тестов фильтруется, чтобы отобразить только тесты, полные имена которых содержат строку.
Фильтрация по другому критерию:
Откройте раскрывающийся список справа от поля поиска.
Выберите новый критерий.
Введите значение фильтра между кавычками. Если вы хотите найти точное совпадение в строке вместо содержащего совпадения, используйте знак равенства (=) вместо двоеточия (:)).
Заметка
Поиск не чувствителен к регистру и сопоставляет указанную строку с любой частью значения критерия.
Квалификатор | Описание |
---|---|
состояния | Выполняет поиск имен категорий обозревателя тестов для совпадений: Неуспешные Тесты, Пропущенные Тесты, Пройденные Тесты. |
признаки | Выполняет поиск совпадений как в категориях признаков, так и в их значениях. Платформа модульного теста определяет синтаксис для указания категорий и значений признака. |
полное квалифицированное имя | Выполняет поиск полного имени тестовых пространств имен, классов и методов для совпадений. |
Проект | Выполняет поиск имен тестовых проектов на совпадения. |
Целевая структура | Ищет совпадения в тестовых фреймворках. |
Пространства имен | Выполняет поиск тестовых пространств имен для совпадений. |
класс | Проводит поиск имен тестовых классов на совпадения. |
Чтобы исключить подмножество результатов фильтра, используйте следующий синтаксис:
FilterName:"Criteria" -FilterName:"SubsetCriteria"
Например, FullName:"MyClass" - FullName:"PerfTest"
возвращает все тесты, включающие MyClass в их имя, за исключением тестов, которые также включают PerfTest в их имя.
Анализ покрытия кода модульного теста
Вы можете определить часть кода продукта, которую ваши модульные тесты фактически тестируют, с помощью средства оценки покрытия кода, доступного в Visual Studio Enterprise. Вы можете запустить покрытие кода для выбранных тестов или всех тестов в решении.
Чтобы запустить покрытие кода для методов тестирования в решении, выполните следующие действия.
- Щелкните правой кнопкой мыши в Test Explorer и выберите Анализ покрытия кода для выбранных тестов.
В окне результатов покрытия кода отображается процент блоков кода продукта, выполняемых строкой, функцией, классом, пространством имен и модулем.
Для получения дополнительных сведений см. статью Использование покрытия кода для определения объема протестированного кода.
Тестовые сочетания клавиш
Вы можете выполнять тесты из обозревателя тестов, выполнив следующие действия:
- Щелкните правой кнопкой мыши на тесте в редакторе кода и выберите Запустить тест
- Использование сочетаний клавиш тестового обозревателя по умолчанию в Visual Studio
Некоторые сочетания клавиш основаны на контексте. Они запускают тесты отладки, или профилирования, на основе того, где находится курсор в редакторе кода. Если курсор находится внутри метода теста, этот метод тестирования запускается. Если курсор находится на уровне класса, все тесты в этом классе выполняются. Такое же поведение верно для уровня пространства имен.
Часто используемые команды | Сочетания клавиш |
---|---|
TestExplorer.DebugAllTestsInContext |
Ctrl+R, Ctrl+T |
TestExplorer.RunAllTestsInContext |
Ctrl+R, T |
TestExplorer.RunAllTests |
Ctrl+R, A |
TestExplorer.RepeatLastRun |
Ctrl+R, L |
Заметка
Тест нельзя запустить в абстрактном классе, так как тесты определены только в абстрактных классах и не создаются. Чтобы выполнить тесты в абстрактных классах, создайте класс, производный от абстрактного класса.
Настройка звуковых подсказок
Обозреватель тестов может воспроизводить один из следующих звуков при завершении тестового выполнения:
- Звук, указывающий на успешное завершение тестового запуска, в котором все тесты пройдены.
- Звук, указывающий, что тестовый прогон завершился по крайней мере с одним неудавшимся тестом.
Эти звуки можно настроить в диалоговом окне Звуки по умолчанию в Windows 11. Эта функция доступна начиная с Visual Studio 2019 с обновлением 16.9 ( предварительная версия 3).
- Откройте диалоговое окно звука по умолчанию Windows 11.
- Перейдите на вкладку Звуки.
- Найдите категорию Microsoft Visual Studio. Выберите предустановленный звук 'Тестовый запуск выполнен успешно' или 'Тестовый запуск не выполнен', или выберите свой звуковой файл.
Связанное содержимое
- Проведите модульное тестирование вашего кода
- модульные тесты отладки с помощью обозревателя тестов
- запуск модульного теста в виде 64-разрядного процесса
- Часто задаваемые вопросы об обозревателе тестов