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


Практическое руководство. Настройка развертывания тестов

Обработчик тестов для Visual Studio Ultimate может запускать тесты либо в папке, в которой они были созданы или сформированы, либо в отдельной папке развертывания. При развертывании тестов в отдельной папке можно продолжать построение решения в процессе выполнения тестов.

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

  • Файл сборки теста.

  • Все зависимые сборки.

  • Указанные файлы, такие как XML-файлы и файлы конфигурации, от которых зависит тест. Для настройки развертывания следует указать дополнительные элементы развертывания для копирования и изменить папку развертывания.

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

При выполнении тестов решения Visual Studio создает файлы развертывания в папке с именем TestResults с иерархической структурой решения. Если папка "TestResults" отсутствует, Visual Studio создаст ее.

Примечание

При применении интерфейса IDE Visual Studio эта папка создается непосредственно в папке решения, если интерфейс IDE Visual Studio не используется, она появится в текущей папке.

При каждом выполнении тестового запуска среда Visual Studio создает в папке TestResults набор папок, предназначенных специально для данного тестового запуска. В примере, показанном на следующем рисунке, первая папка в папке TestResults получила имя "<имя пользователя>@<имя компьютера><дата> <время>". Этот шаблон используется для именования всех этих папок.

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

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

Как показано на предыдущем рисунке, решение ClassLibrary1 содержит два проекта — ClassLibary1 и TestProject1. Поскольку тесты были выполнены, решение также содержит папку с именем "TestResults". Папка "TestResults" содержит файлы результатов для каждого тестового запуска. Данный файл результатов теста имеет расширение TRX.

Ниже описаны другие папки, созданные в папке "TestResults".

  • Папка тестового запуска Папки для каждого тестового запуска находятся непосредственно в папке "TestResults". Имя папки совпадает с именем тестового запуска, как отображается в окне результатов теста и окне тестовых запусков. Форматом по умолчанию для тестового запуска является <имя_пользователя>@<имя_компьютера> <дата> <время>. В папке тестового запуска находятся скрипты очистки, которые выполняются до и после выполнения тестов.

  • Папка "Out" и вложенные папки. Каждая папка тестового запуска содержит папку с именем "Out". Папка Out является фактической папкой развертывания. При каждом запуске теста в папку <решение>\TestResults\<тестовый_запуск>\Out копируются сборки и другие файлы или папки, которые требуются для запуска.

  • Папка "In" и вложенные папки. Каждая папка тестового запуска содержит папку с именем In. При создании определенных результатов теста они сохраняются в папке или вложенной папке In. Например, результаты покрытия кода хранятся в файле с именем data.coverage во вложенной папке с именем <ИД тестового запуска>\<компьютер на котором выполнялся тест>.

Настройка параметров развертывания

Можно настроить развертывание следующими способами.

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

  • Сведения о порядке, в котором копируются элементы развертывания, см. в разделе Порядок развертывания.

Выбор элементов развертывания для отдельного теста

Следующие процедуры применимы только к одному методу теста. Они определяют, какие файлы копируются Visual Studio Ultimate перед выполнением этого конкретного теста.

Чтобы выполнить развертывание элементов для одиночного теста с помощью свойства "Элементы развертывания"

  1. Выберите тест в окне представления тестов или в редакторе списков тестов.

  2. Нажмите клавишу F4.

    Появится окно "Свойства" для этого теста.

  3. Щелкните свойство Элементы развертывания.

    В столбце значения появится многоточие (...).

  4. Нажмите кнопку с многоточием (...).

    Отобразится диалоговое окно Редактор коллекции строк.

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

    Примечание

    В путях элементов развертывания можно использовать переменные данной среды.Пример см. в разделе DeploymentItemAttribute.

  6. Нажмите кнопку ОК.

    Указанные вами элементы будут развернуты в дополнение к элементам, указанным в конфигурации запуска, используемой для теста.

    Примечание

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

Чтобы выполнить развертывание элементов для одиночного теста с помощью атрибута DeploymentItem

  1. Откройте файл исходного кода, содержащий модульный тест.

  2. Под атрибутом TestMethod добавьте атрибут DeploymentItem.

  3. В качестве параметра атрибута DeploymentItem укажите папку или файл, которые нужно развернуть. Можно задавать абсолютный или относительный путь. Относительные пути задаются относительно параметра RelativePathRoot, который находится в файле с расширением TESTRUNCONFIG.

    Пример на языке C#:

    [TestMethod]

    [DeploymentItem("MyTestProject\\testdatasource.mdb")]

    public void TestMethod1()

    {

    // TODO: Add test logic here

    }

    Пример на языке Visual Basic:

    <TestMethod()> _

    <DeploymentItem("MyTestProject\\testdatasource.mdb")> _

    Public Sub TestMethod1()

    ' TODO: Add test logic here

    End Sub

    Примечание

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

  4. Сохраните и закройте файл исходного кода модульного теста.

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

Порядок развертывания

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

Следующий список упорядочен от наивысшего приоритета к самому низкому. Другими словами, элементы, перечисленные в списке первыми, заменяют элементы, перечисленные далее в списке. В следующем списке некоторые элементы развертываются автоматически; среди них — тестовая сборка, инструментированные двоичные файлы и зависимые сборки.

  1. Один или несколько файлов, составляющие тест. Сюда относятся тестовые сборки (для модульных тестов), текстовые файлы и MHT-файлы (для ручных тестов), другие типы файлов для других типов тестов (например, для универсальных тестов).

  2. Инструментированные двоичные файлы. Это двоичные файлы, которые были инструментированы. Они служат, например, для оценки покрытия кода.

    Примечание

    Если используется инструментирование на месте, то двоичные файлы сначала инструментируются, а затем копируются в папку развертывания; в противном случае файлы сначала копируются, а потом подготавливаются.Инструментирование на месте используется по умолчанию для тестов, запускаемых на локальном компьютере.Этот параметр можно изменить в параметрах тестирования.

  3. Элементы, задаваемые в параметрах тестирования.

  4. Зависимости, например файлы конфигурации приложения и зависимые сборки.

  5. Элементы развертывания для данного теста. К ним относятся элементы, указанные для тестового метода.

См. также

Задачи

Создание параметров тестирования для запуска автоматических тестов из Visual Studio

Ссылки

DeploymentItemAttribute

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

Инструментирование и повторная подпись сборок