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


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

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

Где делает выполнение тестов?

Visual Studio 2012 может запускать тесты в нескольких местах:

Разделы справки развертывать тестовые файлы для локального тестов?

Здесь лучшим способом:

  1. Скопируйте файлы в каталог целевого объекта построения в процессе построения.

    • Если они относятся к одному тестовый проект, включить их в качестве файлов содержимого в тестовом проекте Visual Studio.Выделите их в обозревателе решений, а значение свойства Скопируйте для вывода на Копировать более позднюю версию.

    • В противном случае укажите задачи после построения для копирования файлов в выходной каталог построения.Например:

      xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
      

      Открытие свойства проекта для тестового проекта.В проекте C-#, откройте страницу События построения.В проекте Visual Basic, откройте страницу Компилировать и выберите команду События построения.Добавьте команду копирования в поле Событие после построения.

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

    [TestClass]
    class TestClass1
    {
      [TestMethod]
      [DeploymentItem("source", "targetFolder")]
      public void Test1()
      {
        string testData = System.IO.File.ReadAllText(@"targetFolder\source");
        ...
    } }
    
    <TestClass()> _
    Public Class UnitTest1
        <TestMethod()> _
        <DeploymentItem("source", "targetFolder")> _
        Sub TestMethod1()
            Dim testData As String = _
                System.IO.File.ReadAllText(@"targetFolder\source")
        ...
        End Sub
    End Class
    
    • источник файл или каталог для копирования.Путь может быть абсолютным или относительным к выходной каталог построения.

    • targetFolder является необязательным.Каталог, в который копируются содержимое файла или каталога источника.Путь может быть абсолютным или относительно каталога развертывания.Значение по умолчанию ". ", каталог развертывания.

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

      targetFolder всегда каталог, не путь к файлу.Невозможно изменить имя файла с помощью DeploymentItem.

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

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

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

    Для этого добавьте файл .runsettings в решение, например <DeploymentEnabled>False</DeploymentEnabled>, а также выбирает файл в меню Тест выберите Параметры тестирования.Тот же эффект возникает в любом тестового запуска, в котором DeploymentItemAttribute не используется вообще.

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

Когда следует ли использовать файл .testsettings?

Не требуется файл .testsettings для простых модульных тестов.Если не требует файла .testsettings, не используйте его.Он выполняет модульные тесты снизиться, и он несовместим с платформами тестирования третьей стороны.Попробуйте вместо этого другие способы развертывания.

Требуется файла .testsettings, если какие-либо из этих выписки, выполните следующие действия.

Если используется файл .testsettings, приложения и тестовых сборок всегда копируются в папку развертывания.

Можно указать файлы и каталоги данных на странице Развертывание редактора .testsettings.Файлы копируются в папку развертывания перед каждым тестовым запуском.Путь элемента, определенные на этой странице всегда относительно каталога решения и всегда разворачиваются в папке развертывания рядом с приложением и тестовых сборок.

Если требуется использовать абсолютные пути или указать каталог другого целевого объекта, .testsettings открыть файл в редакторе XML и вставить фрагмент, схожий с этим:,

<Deployment>
  <DeploymentItem filename="C:\MyTestData\TestData.mdb"
        outputDirectory="D:\TestDB\" />
</Deployment>

outputDirectory может быть абсолютным или относительным для каталог развертывания.

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

При выполнении тестов с помощью Visual Studio, то в папке развертывания создается в папке TestResults в папке решения.

Отдельную папку развертывания используется, если один из методов теста в тестовом запуске или классы имеют атрибута DeploymentItem или при использовании файл .testsettings.

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

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

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

  • Файлы и каталоги, которые определены явно, или с помощью DeploymentItemAttribute или в файле .testsettings

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

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

Если файлы развертываются и от того, в какой последовательности?

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

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

  1. Элементы, определенные с помощью DeploymentItemAttribute

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

  3. Элементы, определенные в файле .testsettings, если используется поставщик.

  4. Инструментированные двоичные файлы.Например, для сборок, которые были инструментированы для оценки покрытия кода или IntelliTrace.

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

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

Поэтому в папке TestResults?

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

    При указании скрипты настройки и очистки в файле .testsettings, папка тестового запуска содержит эти скрипты.

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

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

См. также

Ссылки

DeploymentItemAttribute

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

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

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

Указание параметров тестирования для тестов Visual Studio