Настройка модульных тестов с помощью файла .runsettings
Модульные тесты в Visual Studio можно настроить с помощью RUNSETTINGS-файла.(Имя файла не имеет значения, если вы используете расширение ".runsettings".) Например, можно изменить платформу .NET Framework, на которой выполняются тесты, каталог, в который отправляются результаты теста, и данные, собранные во время тестового запуска.
Если вам не требуется специальная конфигурация, RUNSETTINGS-файл не нужен.Чаще всего он используется для настройки покрытия кода.
Примечание |
---|
RUNSETTINGS-файл и TESTSETTINGS-файл Существует два вида типов файлов для настройки тестов.RUNSETTINGS-файлы используются для модульных тестов.А TESTSETTINGS-файлы применяются для тестирования в лабораторной среде, тестов веб-производительности и нагрузки, а также для настройки некоторых типов адаптеров диагностических данных, таких как Intellitrace и адаптеры журналов событий. В предыдущих выпусках Visual Studio вплоть до Visual Studio 2010 модульные тесты также настраивались с помощью TESTSETTINGS-файлов.Это по-прежнему возможно, но тесты будут работать медленнее, чем при использовании аналогичных конфигураций в RUNSETTINGS-файле. |
Настройка тестов с помощью файла RUNSETTINGS
Добавьте XML-файл в решение Visual Studio и задайте для него имя test.runsettings.(Имя файла не имеет значения, но расширением должно быть ".runsettings".)
Замените содержимое файла примером.
Измените его в соответствии с собственными требованиями.
В меню Тест щелкните Параметры тестирования и выберите Выбрать файл параметров теста.
Можно создать несколько 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.
|
|
KeepExecutorAliveAfterLegacyRun |
false |
После завершения тестового запуска MSTest завершает работу.При этом также будет завершен любой процесс, запущенный в рамках теста.Чтобы сохранить исполнитель тестов в активном состоянии, задайте для этой конфигурации значение true. Например, это можно использовать, чтобы браузер продолжал работать в перерывах между закодированными тестами пользовательского интерфейса. |
DeploymentEnabled |
true |
Если установить это значение равным false, элементы развертывания, заданные в методе теста, не будут копироваться в каталог развертывания. |
CaptureTraceOutput |
true |
Можно сделать запись в трассировку отладки из метода теста с помощью Trace.WriteLine.Используя эту конфигурацию, можно отключить эти трассировки отладки. |
DeleteDeploymentDirectoryAfterTestRunIsComplete |
true |
Можно сохранить каталог развертывания после завершения тестового запуска, установив это значение равным false. |
MapInconclusiveToFailed |
false |
Если тест возвращает неопределенное состояние, оно обычно сопоставляется с состоянием "Пропущено" в обозревателе тестов.Если требуется, чтобы тесты с неопределенным результатом отображались как непройденные, используйте эту конфигурацию. |
InProcMode |
false |
Если требуется выполнить тесты в том же процессе, что и адаптер теста MS, установите это значение равным true.Этот параметр обеспечивает небольшое повышение производительности.Но если в тесте создано исключение, другие тесты выполняться не будут. |
См. также
Основные понятия
Настройка анализа покрытия кода