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


Выполнение тестов в процессе сборки

С помощью Team Foundation Build можно выполнять автоматические тесты и анализировать в рамках процесса сборки, как изменения кода влияют на тесты. Например, можно определить процесс построения, который будет запускать регулярный тест проверки построения. Автоматические тесты и связанные с тестированием задачи можно также выполнять из настраиваемых процессов сборки.

Примечание

Если требуется развертывать приложение в ходе процесса сборки, следует использовать рабочий процесс сборки, развертывания, тестирования и лабораторную среду.Затем можно выполнить автоматические тесты — либо в рамках рабочего процесса, либо после его завершения.Для получения дополнительной информации см. Автоматизированные рабочие процессы сборки, развертывания и тестирования.

Возможности Team Foundation Build

  • Подготовка к выполнению тестов в процессе сборки

  • Выполнение автоматических тестов

  • Задание условий выполнения тестов средством Visual Studio Test Runner

  • Временное отключение тестов

  • Включение анализа влияния на тесты

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

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

  • Работа с тестами в процессе построения, основанном на пользовательском шаблоне

  • Дополнительные сведения

Подготовка к выполнению тестов в процессе сборки

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

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

Классификация тестов и назначение им приоритета (необязательно). Тестам можно присвоить категории и приоритеты, а затем отфильтровать по этим атрибутам при их запуске в сборке. Например, можно создать категорию тестов CI (непрерывная интеграция) и указать эту категорию в построениях непрерывной интеграции. Можно создать другую категорию для тестов проверки построений и затем указать эту категорию в запланированных построениях, таких как построения, выполняемые ночью. Дополнительные сведения см. в разделах Определение категорий тестов для группировки тестов, TestCategoryAttribute и PriorityAttribute.

Подготовка сервера сборки. Некоторые виды тестов могут быть выполнены только на агенте сборки, запущенном на специально настроенном сервере сборки. Например, если выполняются закодированные тесты пользовательского интерфейса, необходимо настроить агент сборки так, чтобы он работал в интерактивном режиме. Прежде чем использовать процесс сборки для запуска тестов убедитесь, что их можно выполнить на планируемом сервере сборки. Для получения дополнительной информации см. Use Your Build Agent to Run Tests.

Ниже перечислены сценарии, для которых требуется Microsoft Visual Studio на сервере сборки.

  • Для сборки любого тестового проекта CPP необходимо установить Visual Studio Professional или более поздней версии.

  • Для выполнения модульных тестов или закодированных тестов пользовательского интерфейса необходимо установить Visual Studio Professional или более поздней версии.

  • Для использования адаптеров данных и диагностических данных:

    1. Покрытие кода: Visual Studio Premium или более поздней версии.

    2. Влияние на тесты: Visual Studio Ultimate.

    3. IntelliTrace: Visual Studio Ultimate.

  • Для сборки любых приложений с современным стилем на компьютере сборки: Visual Studio Ultimate или Visual Studio Express для Windows 8 (на сервере сборки должна быть установлена операционная система Windows 8).

  • Для компиляции и выполнения тестов проекта с поддельной сборкой: Visual Studio Ultimate.

Выполнение автоматических тестов

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

  • выполняемые тесты;

  • параметры выполнения этих тестов;

  • параметр, определяющий, будет ли сборка завершаться ошибкой в случае сбоя теста.

  1. В Team Explorer выберите Значок "Начало" Главная, затем Значок построений Сборки (нажмите клавиши CTRL+0, B).

  2. На странице Сборки нажмите Создать определение сборки или откройте контекстное меню сборки или нужного определения сборки и выберите Редактировать определение сборки.

    Появится окно определения сборки.

  3. На вкладке Процесс определения сборки выберите поле Автоматизированные тесты и нажмите кнопку с многоточием (...).

    Откроется диалоговое окно Автоматические тесты.

  4. Выполните одно из следующих действий.

    • Для добавления набора тестов нажмите Добавить.

    • Для изменения набора тестов, выберите его и нажмите Изменить.

    Откроется диалоговое окно Добавить/Изменить тест.

  5. (Необязательно) Укажите Имя тестового запуска. Это имя отображается в окне результатов сборки. Если имя не указано, система автоматически создаст его.

  6. Если требуется, чтобы сборка завершалась сбоем при ошибке какого-либо из тестов этого запуска, установите флажок Завершить сборку при ошибке теста. Если оставить этот флажок снятым, то в случае сбоя теста для состояния выполненного построения будет установлено значение Частично успешно.

  7. Спецификация файла тестовой сборки

    Укажите двоичные файлы, содержащие необходимые тесты. Если требуется, чтобы агентом построения выполнялся рекурсивный поиск всех DLL-файлов, соответствующих спецификации *test*.dll, в подкаталоге binaries рабочего каталога агента построения, оставьте значение по умолчанию (**\*test*.dll). Можно также изменить спецификацию файла в соответствии с конкретными потребностями.

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

    Кроме того, можно использовать параметр Настраиваемый для задания файла RUNSETTINGS. Для получения дополнительной информации см. Настройка анализа покрытия кода.

  9. В меню Укажите целевую платформу для выполнения тестов выберите x86 для тестирования 32-разрядных двоичных файлов или x64 для тестирования 64-разрядных двоичных файлов.

  10. Вы можете указать условия для выполняемых тестов.

Задание условий выполнения тестов средством Visual Studio Test Runner

Можно указать пары "имя/значение" для фильтрации выполняемых тестов. Если для упорядочения и определения приоритетов тестов используются атрибуты категории и приоритета, можно фильтровать выполняемые тесты с помощью имен TestCategory и Priority.

Категории тестов указываются одним из следующих способов.

  • Укажите одну пару "имя/значение", которую следует включить. Допустим, имеется категория тестов с именем bvt. Чтобы выполнять тесты только этой категории, необходимо указать в меню Фильтр тестовых случаев TestCategory=bvt.

  • Укажите несколько категорий тестов с помощью || (оператора "или"). Например, можно задать TestCategory=quick||TestCategory=gui для выполнения тестов, относящихся к категориям quick и gui.

Временное отключение тестов

Если необходимо временно отключить тесты, не удаляя содержащие их наборы, разверните узел Дополнительно и в поле Отключение тестов установите значение True. При необходимости снова включить тесты установите значение Ложь.

Включение анализа влияния на тесты

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

Включение анализа влияния на тесты в процессе построения, который основан на шаблоне по умолчанию

  1. Настройте анализ влияния на тесты в файле параметров тестирования.

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

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

    Дополнительные сведения см. в подразделе Выполнение автоматических тестов ранее в этом разделе.

  3. Разверните узел "Дополнительно" и убедитесь, что параметру Анализировать влияние на тесты задано значение True, а параметру Отключение тестов — значение False.

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

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

  • Необходимо использовать средство Visual Studio Test Runner для тестирования решения, которое создает 32- или 64-разрядные двоичные файлы.

  • Имеется два набора тестов.

    • Набор основных тестов высшего приоритета, которые должны завершиться успешно. Указывается набор тестов, содержащий Минимальный приоритет теста и Максимальный приоритет теста равные 1. Установите флажок Завершить построение при ошибке теста.

    • Набор менее важных тестов, которые требуется выполнить. В случае их сбоя построение по-прежнему можно будет использовать. Указывается набор тестов, содержащий Минимальный приоритет теста равный 2 и Максимальный приоритет теста равный 3. Не устанавливайте флажок Завершить построение при ошибке теста.

  • Требуется выполнить один набор тестов с различными параметрами тестирования.

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

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

Процесс сборки может выполнять модульные тесты на основе сторонних платформ только в том случае, если контроллеру сборок предоставлен доступ к сборкам сторонних платформ.

  1. Найдите, а при необходимости укажите путь контроллера сборок к пользовательским сборкам.

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

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

    Адаптер

    Язык

    Boost

    C++

    Chutzpah

    JavaScript

    Google

    C++

    MbUnit

    C#

    MSpec

    MSpec

    nUnit

    C#

    Средства Python для Visual Studio

    Python

    Silverlight

    Silverlight

    TSTestAdapter

    TypeScript

    VsNodeTest

    Node.js

    xUnit.net

    C#

    xUnit++

    C++

  4. Переименуйте файл VSIX подключаемого модуля в файл ZIP. Например, введите в командной строке следующее:

    C:\Downloads>ren NUnitTestAdapter.vsix NUnitTestAdapter.zip
    
  5. Распакуйте содержимое файла ZIP в папку локальной рабочей области, сопоставленной на шаге 2.

  6. Верните файлы.

    Совет

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

[Visual Studio 2012.3] содержит усовершенствование для сторонних платформ модульного тестирования, позволяющее автоматически включать их в определения сборок команды.

Предупреждение

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

Включение в контроллере построений платформы модульного тестирования независимых разработчиков – [Visual Studio 2012.1]

  1. В обозревателе решений откройте контекстное меню тестового проекта и выберите Управление пакетами NuGet.

  2. В левом столбце диалогового окна "Управление пакетами NuGet" выберите В сети.

  3. Выберите пакет NuGet для сторонней платформы модульного тестирования и нажмите Установить.

  4. По завершению установки пакета NuGet нажмите Закрыть.

  5. В обозревателе решений откройте контекстное меню решения и нажмите Добавить решение в систему управления версиями.

  6. Теперь можно поместить сборку в очередь, и тесты сторонней платформы модульного тестирования будут выполняться автоматически.

Работа с тестами в настраиваемом процессе сборки

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

Возможные дальнейшие действия

Планирование ручных тестов с помощью Team Web Access

Углубленное изучение вопроса

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

См. также

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

Определение процесса сборки

Выполнение автоматических тестов из рабочего процесса сборки, развертывания и тестирования

Другие ресурсы

Запуск системных тестов с помощью Microsoft Visual Studio