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


Настройка модульных тестов с помощью файла .runsettings

Модульные тесты в Visual Studio можно настроить с помощью RUNSETTINGS-файла.(Имя файла не имеет значения, если вы используете расширение ".runsettings".) Например, можно изменить платформу .NET Framework, на которой выполняются тесты, каталог, в который отправляются результаты теста, и данные, собранные во время тестового запуска.

Если вам не требуется специальная конфигурация, RUNSETTINGS-файл не нужен.Чаще всего он используется для настройки покрытия кода.

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

RUNSETTINGS-файл и TESTSETTINGS-файл

Существует два вида типов файлов для настройки тестов.RUNSETTINGS-файлы используются для модульных тестов.А TESTSETTINGS-файлы применяются для тестирования в лабораторной среде, тестов веб-производительности и нагрузки, а также для настройки некоторых типов адаптеров диагностических данных, таких как Intellitrace и адаптеры журналов событий.

В предыдущих выпусках Visual Studio вплоть до Visual Studio 2010 модульные тесты также настраивались с помощью TESTSETTINGS-файлов.Это по-прежнему возможно, но тесты будут работать медленнее, чем при использовании аналогичных конфигураций в RUNSETTINGS-файле.

Настройка тестов с помощью файла RUNSETTINGS

  1. Добавьте XML-файл в решение Visual Studio и задайте для него имя test.runsettings.(Имя файла не имеет значения, но расширением должно быть ".runsettings".)

  2. Замените содержимое файла примером.

    Измените его в соответствии с собственными требованиями.

  3. В меню Тест щелкните Параметры тестирования и выберите Выбрать файл параметров теста.

Можно создать несколько RUNSETTINGS-файлов в решении и включить или отключить их в разное время с помощью меню Параметры тестирования.

Включение файла параметров запуска

Копирование файла RUNSETTINGS этого примера

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

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x86</TargetPlatform>

    <!-- Framework35 | [Framework40] | Framework45 -->
    <TargetFrameworkVersion>Framework40</TargetFrameworkVersion>
  </RunConfiguration>
  
  <!-- Configurations for data collectors -->
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <CodeCoverage>
            <ModulePaths>
              <Exclude>
                <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
              </Exclude>
            </ModulePaths>
          </CodeCoverage>
        </Configuration>
      </DataCollector>
      
    </DataCollectors>
  </DataCollectionRunSettings>
  
  <!-- Adapter Specific sections -->
  
  <!-- MSTest adapter -->
  <MSTest>
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>
    <CaptureTraceOutput>false</CaptureTraceOutput>
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
    <DeploymentEnabled>False</DeploymentEnabled>
  </MSTest>
  
  
</RunSettings>

RUNSETTINGS-файл также используется для настройки покрытия кода.

Далее в этом разделе описывается содержимое файла.

Правка файла RUNSETTINGS

RUNSETTINGS-файл содержит следующие элементы.

Конфигурация тестового запуска

Узел

По умолчанию

Значения

ResultsDirectory

Каталог для сохранения результатов тестов.

TargetFrameworkVersion

Framework40

Framework35, Framework40, Framework45

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

TargetPlatform

x86

x86, x64

TreatTestAdapterErrorsAsWarnings

false

false, true

Адаптеры данных диагностики (сборщики данных)

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

Адаптер покрытия кода

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

Другие адаптеры диагностических данных

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

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

Параметры запуска MSTest

Эти параметры относятся к адаптеру тестов, выполняющему методы теста, которые имеют атрибут [TestMethod].

Конфигурация

По умолчанию

Значения

ForcedLegacyMode

false

В Visual Studio 2012 адаптер MSTest был оптимизирован, чтобы сделать его более быстрым и более масштабируемым.Некоторое поведение, в частности порядок, в котором выполняются тесты, может немного отличаться от поведения в предыдущих выпусках Visual Studio.Установите это значение равным true для использования старого адаптера теста.

Например, это можно использовать, если имеется файл app.config, определенный для модульного теста.

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

IgnoreTestImpact

false

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

SettingsFile

Здесь можно задать файл параметров тестирования для использования с адаптером теста MS.Файл параметров тестирования можно также задать с помощью меню Тест, Параметры тестирования, Выбрать файл параметров теста.

Если задано это значение, необходимо также задать для параметра ForcedlegacyMode значение true.

<RunSettings>
  <MSTest>
    <SettingsFile>my.testsettings</SettingsFile> 
    <ForcedLegacyMode>true</ForcedLegacyMode> 
  </MSTest>
</RunSettings>

KeepExecutorAliveAfterLegacyRun

false

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

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

DeploymentEnabled

true

Если установить это значение равным false, элементы развертывания, заданные в методе теста, не будут копироваться в каталог развертывания.

CaptureTraceOutput

true

Можно сделать запись в трассировку отладки из метода теста с помощью Trace.WriteLine.Используя эту конфигурацию, можно отключить эти трассировки отладки.

DeleteDeploymentDirectoryAfterTestRunIsComplete

true

Можно сохранить каталог развертывания после завершения тестового запуска, установив это значение равным false.

MapInconclusiveToFailed

false

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

InProcMode

false

Если требуется выполнить тесты в том же процессе, что и адаптер теста MS, установите это значение равным true.Этот параметр обеспечивает небольшое повышение производительности.Но если в тесте создано исключение, другие тесты выполняться не будут.

См. также

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

Настройка анализа покрытия кода

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

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