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

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

В данном разделе

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

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

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

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

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

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

  • Просмотр файла исходного кода модульного теста.

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

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

  • Команда характеристиками

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

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

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

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

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

  • Руководство

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

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

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

В данном разделе

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

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

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

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

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

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

Hh270865.collapse_all(ru-ru,VS.110).gifВыполнение тестов

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

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

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

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

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

Hh270865.collapse_all(ru-ru,VS.110).gifЗапуск тестов после каждого построения

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

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

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

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

В данном разделе

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

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

Hh270865.collapse_all(ru-ru,VS.110).gifПросмотр сведений теста

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

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

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

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

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

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

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

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

Hh270865.collapse_all(ru-ru,VS.110).gifПросмотр файла исходного кода модульного теста.

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

В данном разделе

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

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

Hh270865.collapse_all(ru-ru,VS.110).gifГруппирование списка тестов

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

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

Группа

Описание

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

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

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

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

Характеристики

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

Проект

Команды выполняют по имени проекта.

Hh270865.collapse_all(ru-ru,VS.110).gifКоманда характеристиками

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

Например, в структуре тестирования модуля Майкрософт для управляемых приложений задается пара "имя-значение" характеристики с помощью TestPropertyAttribute.Структура тестирования модуля Майкрософт также содержит эти предопределенные характеристики:

Характеристика

Описание

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.OwnerAttribute ]

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

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute ]

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

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryAttribute ]

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

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute ]

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

Характеристики платформы модульных тестов для Microsoft C C-++

Чтобы определить характеристики, используйте макрос 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 C-++

Макрос

Описание

TEST_METHOD_ATTRIBUTE(attributeName, attributeValue)

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

TEST_OWNER(ownerAlias)

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

TEST_PRIORITY(priority)

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

В данном разделе

Hh270865.collapse_all(ru-ru,VS.110).gifПоиск и фильтрация списка тестов

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

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

Фильтрация другое условие:

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

  2. Выберите новое условие.

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

Категории фильтров поиска

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

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

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

Описание

Характеристика

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

Проект

Имена тестового проекта для поиска совпадений.

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

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

Путь к файлу

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

Полное имя

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

Output

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

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

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

В данном разделе

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

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

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

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

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

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

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

В данном разделе

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

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

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

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

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

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

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

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

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

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

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

В данном разделе

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

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

В данном разделе

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

Hh270865.collapse_all(ru-ru,VS.110).gifРуководство

Проверка непрерывной работы с Visual Studio 2012 – Chapter 2: Модульное тестирование: Тестирование внутри

См. также

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

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

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