Поделиться через


Выполнение модульных тестов с помощью обозревателя тестов

Используйте обозреватель тестов для выполнения модульных тестов из проектов Visual Studio или сторонних проектов модульного тестирования, группирования тестов в категории, фильтрации списка тестов, а также создания, сохранения и запуска списков воспроизведения тестов.Тесты можно также выполнять отладку тестов и проанализировать производительность тестов и покрытие кода.

Описание

Платформы модульного тестирования и тестовые проекты

Запуск тестов в Обозреватель тестов

Просматривать результаты тестов

Группирование и фильтрация списка тестов

Создание пользовательских списков воспроизведения

Отладка и анализ модульных тестов

Внешние ресурсы

Платформы модульного тестирования и тестовые проекты

Visual Studio включает платформы модульного тестирования Майкрософт для управляемого и неуправляемого кода.Однако обозреватель тестов может также запускать любую платформу модульного тестирования, в которой реализован адаптер обозревателя тестов.Дополнительные сведения об установке сторонних платформ модульного тестирования см. в разделе Практическое руководство. Установка платформ модульного тестирования сторонних поставщиков

Обозреватель тестов может выполнять тесты из нескольких тестовых проектов в решении и из тестовых классов, которые являются частью проектов, содержащих рабочий код.Тестовые проекты могут использовать различные платформы модульного тестирования.Если тестируемый код написан для платформы .NET Framework, то тестовый проект может быть написан на любом языке, рассчитанном на .NET Framework, независимо от языка целевого кода.Проекты с неуправляемым кодом C/C++ должны тестироваться с помощью среды модульного тестирования C++.

К началуСодержание

Запуск тестов в Обозреватель тестов

Выполнение тестов**|**Выполнение тестов после каждой сборки

При сборке тестового проекта, тесты отображаются в Обозревателе тестов.Если обозреватель тестов не отображается, выберите пункт Тест в меню Visual Studio, затем — Окна, а затем — Обозреватель тестов.

Обозреватель модульных тестов

При запуске, записи и повторном запуске тестов обозреватель тестов отображает результаты в следующих группах по умолчанию: Неудачные тесты, Пройденные тесты, Пропущенные тесты и Незапускавшиеся тесты.Порядок группировки тестов в обозревателе тестов можно изменить.

Большая часть задач поиска, организации и выполнения тестов может быть выполнена из панели инструментов обозревателя тестов.

Запуск тестов из панели инструментов обозревателя тестов

К началуСодержание

Выполнение тестов

Можно выполнить все тесты в решении, все тесты в группе или выделенный набор тестов.Выполните одно из следующих действий.

  • Чтобы выполнить все тесты в решении, выберите Выполнить все.

  • Чтобы выполнить все тесты в группе по умолчанию, выберите Выполнить..., а затем выберите группу в меню.

  • Выберите отдельные тесты, которые необходимо выполнить, откройте контекстное меню для выделенного теста, а затем выберите Запуск выбранных тестов.

Панель "пройден/не пройден" в верхней части окна обозревателя тестов обновляется по мере выполнения тестов.По завершении тестового запуска панель "пройден или не пройден" становится зеленой, если все тесты пройдены, или красной, если какие-либо тесты не пройдены.

К началуСодержание

Запуск тестов после каждого сборки

Предупреждающее замечаниеВнимание

Выполнение модульных тестов после каждого сборки поддерживаются только в Visual Studio Ultimate и Premium

Запуск после построения

Для выполнения модульных тестов после каждого локального сборки в стандартном меню выберите Тест, на панели инструментов Обозревателя тестов выберите команду Выполнить тесты после сборки.

К началуСодержание

Просматривать результаты тестов

Просмотр сведений о тесте**|**Просмотр исходного кода метода теста

При запуске, записи и повторном запуске тестов обозреватель тестов отображает результаты в следующих группах: Неудачные тесты, Пройденные тесты, Пропущенные тесты и Незапускавшиеся тесты.Сводка тестового запуска отображается в нижней части области сведений обозревателя тестов.

Просмотр сведений о тесте

Для просмотра подробностей отдельного теста выберите тест.

Сведения о выполнении теста

В области сведений теста отображаются следующие сведения:

  • Имя файла источника и номер строки метода теста.

  • Состояние теста.

  • Время, затраченное на выполнение метода теста.

Если тест завершается с ошибкой, то в области сведений также выводится:

  • Сообщение, возвращаемое структурой модульного тестирования для данного теста.

  • Трассировка стека на момент неудачного завершения теста.

К началуСодержание

Просмотр исходного кода метода теста

Для отображения исходного кода метода теста в редакторе Visual Studio выберите тест и выберите в контекстном меню Открыть тест (клавиатура: F12).

К началуСодержание

Группирование и фильтрация списка тестов

Группирование списка тестов**|Группировка по признакам|**Поиск и фильтрация списка тестов

Обозреватель тестов позволяет группировать тесты в предопределенные категории.Большинство структур модульного тестирования, которые выполняются в обозревателе тестов, позволяют определять собственные категории и пары категория/значение для группирования тестов.Кроме того, можно отфильтровать список тестов путем сравнения строк относительно свойств теста.

Группирование списка тестов

Чтобы изменить способ организации тестов, нажмите кнопку со стрелкой вниз рядом с кнопкой Кнопка группы обозревателя тестовГруппировать по и выберите новые критерии группирования.

Группировка тестов по категориям в обозревателе тестов

Группы обозревателя тестов

Группа

Описание

Длительность

Группирует тесты по времени выполнения: Быстро, Средне и Медленно.

Выходные данные

группирует тесты по результатам выполнения: Неудачные тесты, Пропущенные тесты, Пройденные тесты.

Признаки

Группирует тесты по парам категория/значение, которые были определены.Синтаксис для задания категорий и значений признаков определяется средой модульного тестирования.

Проект

Группирует тесты по имени проектов.

К началуСодержание

Группирование по признакам

Признак — обычно пара "имя-значение" категории, но он также может быть одной категорией.Признаки можно присваивать методам, определенным как метод теста средой модульного тестирования.основа модульного теста может определять категории признаков.Можно добавлять значения в категории характеристик, чтобы определить собственные пары «название категории-значение».Синтаксис для задания категорий и значений признаков определяется средой модульного тестирования.

Признаки в среде модульного тестирования Microsoft для управляемого кода

В структуре тестирования модуля Майкрософт для управляемых приложений задается пара "имя/значение" характеристики в атрибуте TestPropertyAttribute.Платформа тестирования также содержит следующие предопределенные признаки:

Признак

Описание

OwnerAttribute

Категория "Владелец" определяется средой модульного тестирования и требует предоставления строкового значения владельца.

PriorityAttribute

Категория "Приоритет" определяется средой модульного тестирования и требует предоставления целочисленного значения приоритета.

TestCategoryAttribute

Атрибут TestCategory позволяет предоставлять категорию без значения.Категория, определенная атрибутом TestCategory, также может быть категорией атрибута TestProperty.

TestPropertyAttribute

Атрибут TestProperty позволяет определить пару "категория признака-значение".

Признаки в среде модульного тестирования C++ Microsoft

Чтобы определить признак, используйте макрос TEST_METHOD_ATTRIBUTE.Например, чтобы задать признак с именем TEST_MY_TRAIT:

#define TEST_MY_TRAIT(traitValue) TEST_METHOD_ATTRIBUTE(L"MyTrait", traitValue)

Чтобы использовать определенный признак в модульных тестах:

BEGIN_TEST_METHOD_ATTRIBUTE(Method1)
    TEST_OWNER(L"OwnerName")
    TEST_PRIORITY(1)
    TEST_MY_TRAIT(L"thisTraitValue")
END_TEST_METHOD_ATTRIBUTE()

TEST_METHOD(Method1)
{   
    Logger::WriteMessage("In Method1");
    Assert::AreEqual(0, 0);
}

Макросы атрибута признака C++

Макрос

Описание

TEST_METHOD_ATTRIBUTE(attributeName, attributeValue)

Чтобы определить признак, используйте макрос TEST_METHOD_ATTRIBUTE.

TEST_OWNER(ownerAlias)

Используйте предопределенный признак "Владелец" для задания владельца метода теста.

TEST_PRIORITY(priority)

Используйте предопределенный признак "Приоритет" для назначения относительных приоритетов методам тестов.

К началуСодержание

Поиск в списке тестов и фильтрация списка тестов

Фильтры обозревателя тестов можно использовать для ограничения тестовых методов в просматриваемых и выполняемых проектах.

При вводе строки в поле поиска обозревателя тестов и нажатии клавиши «Ввод» список тестов фильтруется, отображаются только тесты, чьи полные имена содержат строку.

Для фильтрации по другому критерию:

  1. Откройте раскрывающийся список справа от поля поиска.

  2. Выберите новые критерии.

  3. Введите значение фильтра между кавычками.

Фильтрация тестов в обозревателе тестов

ПримечаниеПримечание

При поиске регистр не учитывается; заданная строка сравнивается с любой частью значения критерия.

Квалификатор

Описание

Признак

Поиск совпадений и в категории, и в значении признака.Синтаксис для задания категорий и значений признаков определяется средой модульного тестирования.

Проект

Поиск совпадений в именах тестовых проектов.

Сообщение об ошибке

Поиск совпадений в определенных пользователем сообщениях об ошибке, возвращаемых непройденными утверждениями.

Путь к файлу

Поиск совпадений в полном имени файла исходных файлов тестов.

Полное имя

Поиск совпадений в полном имени файла пространств имен, классов и методов.

Output

Поиск в определенных пользователем сообщениях об ошибке, записываемых в стандартный поток вывода (stdout) или стандартную ошибку (stderr).Синтаксис для задания исходящих сообщений определяется средой модульного тестирования.

Выходные данные

Поиск совпадений в именах категорий обозревателя тестов: Неудачные тесты, Пропущенные тесты, Пройденные тесты.

Чтобы исключить подмножество результатов фильтра, используйте следующий синтаксис:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

Например:

FullName:"MyClass" - FullName:"PerfTest"

возвращает все тесты, имена которых включают "MyClass", кроме тех, имена которых также содержат "PerfTest".

К началуСодержание

Создание пользовательских списков воспроизведения

Можно создать и сохранить список тестов, который необходимо запустить или просмотреть в качестве группы.При выборе списка воспроизведения тесты в списке отображаются в обозревателе тестов.Можно добавить тест на несколько списков воспроизведения, и все тесты в проекте будут доступны при выборе списка воспроизведения Все тесты по умолчанию.

Выбор списка воспроизведения

Чтобы создать список воспроизведения, выберите один или несколько тестов в обозревателе тестов.В контекстном меню выберите команду Добавить в список воспроизведения, Новый список воспроизведения.Сохраните файл с именем и расположением, заданными в диалоговом окне Создать новый список воспроизведения.

Чтобы добавить тесты в список воспроизведения, выберите один или несколько тестов в обозревателе тестов.В контекстном меню выберите команду Добавить в список воспроизведения, затем выберите список воспроизведения, в который необходимо добавить тесты.

Чтобы открыть список воспроизведения, в меню Visual Studio выберите "Тест", "Список воспроизведения" и либо выберите один из списка недавно использовавшихся списков воспроизведения, либо выберите "Открыть список воспроизведения", чтобы указать имя и расположение списка воспроизведения.

К началуСодержание

Отладка и анализ модульных тестов

Отладка модульных тестов**|Диагностика проблем производительности метода теста|**Анализ покрытия кода модульными тестами

Отладка модульных тестов

Для запуска сеанса отладки тестов можно использовать Обозреватель тестов.Пошаговое выполнение кода с отладчиком Visual Studio легко осуществляет переход между модульными тестами и тестируемым проектом.Для Начало отладки:

  1. В редакторе Visual Studio, установите точку останова в одном или нескольких методах теста, которые требуется отладить.

    ПримечаниеПримечание

    Поскольку методы теста могут выполняться в любом порядке, задайте точки останова во всех методах теста, которые требуется отладить.

  2. В обозревателе тестов выберите методы тестирования, а затем — Отладить выбранные тесты в контекстном меню.

Дополнительные сведения об отладчике см. в разделе Отладка в Visual Studio.

К началуСодержание

Диагностика проблем производительности метода теста

Чтобы диагностировать, почему выполнение метода теста занимает слишком много времени, выберите метод в обозревателе тестов и выберите "Профиль" в контекстном меню.См. раздел Анализ производительности приложения с помощью средств профилирования.

Анализ покрытия кода модульными тестами

ПримечаниеПримечание

Покрытие кода модульными тестами доступно только в Visual Studio Ultimate и Visual Studio Premium.

Объем кода продукта, который был фактически протестирован модульными тестами, можно определить с помощью средства покрытия кода Visual Studio.Определение покрытия кода можно выполнить на выбранных тестах или на всех тестах в решении.

Для запуска определения покрытия кода для методов теста в решении:

  1. В меню Visual Studio выберите Тесты, а затем — Анализ покрытия кода.

  2. Выберите одну из следующих команд в подменю:

    • Выбранные тесты запустит методы теста, выбранные в обозревателе тестов.

    • Все тесты запускают все методы тестов в решении.

Окно "Результаты покрытия кода" отображает процент блоков рабочего кода продукта по строкам, функциям, классам, пространствам имен и модулям.

Для получения дополнительной информации см. Использование покрытия кода для определения объема протестированного кода.

К началуСодержание

Внешние ресурсы

Руководство

Книга "Шаблоны и приемы. Тестирование при непрерывной поставке с использованием Visual Studio 2012", глава 2, "Модульное тестирование: тестирование изнутри"

См. также

Основные понятия

Проверка кода при помощи модульных тестов

Практическое руководство. Выполнение модульного теста как 64-разрядного процесса