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


Изменение XML-файла конфигурации тестового запуска

Обновлен: Ноябрь 2007

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

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

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

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

Пример файла конфигурации тестового запуска

В следующем примере файла некоторые элементы выделены жирным шрифтом. Эти элементы соответствуют основным группам параметров, которые можно настроить с помощью редактора конфигурации тестового запуска.

<?xml version="1.0" encoding="utf-8"?>

<Tests>  

    <TestRunConfiguration type="Microsoft.VisualStudio.TestTools.Common.TestRunConfiguration">

      <id type="Microsoft.VisualStudio.TestTools.Common.TestRunConfigurationId">

        <id type="System.Guid">5d9344ed-bbde-4850-b05e-a7058096e956</id>

      </id>

    <name type="System.String">TestRunConfig1</name>

    <description type="System.String">This is a default test run configuration for a local test run.</description>

    <isCodeCoverageEnabled type="System.Boolean">True</isCodeCoverageEnabled>

    <codeCoverageItems type="System.Collections.Generic.List`1[[Microsoft.VisualStudio.TestTools.Common.CodeCoverageItem, Microsoft.VisualStudio.QualityTools.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]">

    <_items type="Microsoft.VisualStudio.TestTools.Common.CodeCoverageItem[]">

      <element type="Microsoft.VisualStudio.TestTools.Common.CodeCoverageItem">

        <binaryFile type="System.String">bin\Debug\ClassLibrary1.dll</binaryFile>

        <keyFile type="System.String">Library1.snk</keyFile>

        <pdbFile type="System.String">bin\Debug\ClassLibrary1.pdb</pdbFile>

        <instrumentInPlace type="System.Boolean">True</instrumentInPlace>

        <outputDirectory type="System.String" />

      </element>

      </_items><_size type="System.Int32">1</_size>

      <_version type="System.Int32">1</_version>

    </codeCoverageItems>

    <codeCoverageKeyFile type="System.String" />

    <aspNetProjectCoverageItems type="System.Collections.Generic.List`1[

[Microsoft.VisualStudio.TestTools.Common.AspNetProjectItem, Microsoft.VisualStudio.QualityTools.Common, Version=8.0.0.0,

Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]">

    <_size type="System.Int32">0</_size>

    <_version type="System.Int32">0</_version>

    </aspNetProjectCoverageItems>

    <isExecutedRemotely type="System.Boolean">False</isExecutedRemotely>

    <bucketSize type="System.Int32">200</bucketSize>

    <bucketThreshold type="System.Int32">1000</bucketThreshold>

    <runTimeout type="System.Int32">0</runTimeout>

    <testTimeout type="System.Int32">300000</testTimeout>

    <agentNotRespondingTimeout type="System.Int32">300000</agentNotRespondingTimeout>

    <deploymentTimeout type="System.Int32">300000</deploymentTimeout>

    <controllerName type="System.String" />

    <plugins type="System.Collections.Generic.List`1[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]">

    <_size type="System.Int32">0</_size>

    <_version type="System.Int32">0</_version>

    </plugins>

    <testTypeSpecificData type="System.Collections.Generic.Dictionary`2[[Microsoft.VisualStudio.TestTools.Common.TestType, Microsoft.VisualStudio.QualityTools.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[Microsoft.VisualStudio.TestTools.Common.ITestTypeSpecificRunConfigurationData, Microsoft.VisualStudio.QualityTools.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]">

    <buckets type="System.Int32">-1,-1,0</buckets>

      <entries type="System.Collections.Generic.Dictionary`2+Entry[[Microsoft.VisualStudio.TestTools.Common.TestType, Microsoft.VisualStudio.QualityTools.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[Microsoft.VisualStudio.TestTools.Common.ITestTypeSpecificRunConfigurationData, Microsoft.VisualStudio.QualityTools.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]][]">

        <element type="Microsoft.VisualStudio.TestTools.WebTesting.WebTestRequestHeader, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

          <m_name type="System.String">User-Agent</m_name>

          <m_value type="System.String">Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)</m_value>

        </element>

      </entries>

    <count type="System.Int32">1</count>

    <version type="System.Int32">1</version>

    <freeList type="System.Int32">-1</freeList>

    <freeCount type="System.Int32">0</freeCount>

    <comparer type="System.Collections.Generic.ObjectEqualityComparer`1[[Microsoft.VisualStudio.TestTools.Common.TestType, Microsoft.VisualStudio.QualityTools.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]" />

    </testTypeSpecificData>

    <userDeploymentRoot type="System.String" />

    <useDefaultDeploymentRoot type="System.Boolean">True</useDefaultDeploymentRoot>

    <deploymentItems type="Microsoft.VisualStudio.TestTools.Common.DeploymentItemCollection" />

    <testRunNamingScheme type="Microsoft.VisualStudio.TestTools.Common.TestRunNamingScheme">

      <appendTimeStamp type="System.Boolean">True</appendTimeStamp>

      <useDefault type="System.Boolean">True</useDefault>

    </testRunNamingScheme>

    <setupCommand type="System.String" />

    <cleanupCommand type="System.String" />

    <abortRunOnError type="System.Boolean">False</abortRunOnError>

    <mapIPAddresses type="System.Boolean">False</mapIPAddresses>

    <agentProperties type="System.Collections.Specialized.StringDictionary, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

    <hostData type="Microsoft.VisualStudio.TestTools.Common.HostRunConfigurationData">

    <mapHostSpecificData type="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],

[Microsoft.VisualStudio.TestTools.Common.IHostSpecificRunConfigurationData, Microsoft.VisualStudio.QualityTools.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]">

    <count type="System.Int32">0</count>

    <version type="System.Int32">0</version>

    <freeList type="System.Int32">0</freeList>

    <freeCount type="System.Int32">0</freeCount>

    <comparer type="System.Collections.Generic.GenericEqualityComparer`1[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]" />

    </mapHostSpecificData>

    </hostData>

    <ignoredDependentAssemblies type="System.String" />

    <apartmentState type="System.Threading.ApartmentState">

    <value__ type="System.Int32">0</value__>

    </apartmentState>

  </TestRunConfiguration>

</Tests>

Примеры

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

  • Изменение расположения, используемого для результатов теста по умолчанию

  • Изменение расположения инструментирования и задание дополнительных ключевых файлов

Изменение расположения, используемого для результатов теста по умолчанию

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

  • Результаты тестов, выполняемых в интегрированной среде разработки Visual Studio, сохраняются в папке "TestResults", расположенной в папке текущего решения.

  • Результаты тестов, выполняемых с помощью команды командной строки MSTest.exe, сохраняются в папке "TestResults", расположенной в текущей папке. 

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

Например, измените

<useDefaultDeploymentRoot type="System.Boolean">True</useDefaultDeploymentRoot>

на следующую строку:

<useDefaultDeploymentRoot type="System.Boolean">False</useDefaultDeploymentRoot >

<userDeploymentRoot

  type="System.String">C:\My Documents\Visual Studio\Projects\MyResults</userDeploymentRoot>

  <runDeploymentRoot type="System.String" />

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

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

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

В данном примере используются два двоичных файла объема протестированного кода: ClassLibrary1.dll и ClassLibrary2.dll. Можно указать, например, что файл ClassLibrary1.dll должен инструментироваться на месте, а для файла ClassLibrary2.dll он использоваться не должен. Также можно указать, что файл ClassLibrary1.dll должен повторно подписываться после инструментирования с помощью файла Library1.snk, а файл ClassLibrary2.dll должен подписываться с помощью другого ключевого файла — Library2.snk.

В следующем фрагменте XML-кода демонстрируется выполнение этих операций. Приведенные здесь элементы, каждый из которых представляет сборку, являются дочерними элементами элемента <codeCoverageItems>.

  <element type="Microsoft.VisualStudio.TestTools.Common.CodeCoverageItem">

    <binaryFile type="System.String">bin\Debug\ClassLibrary1.dll</binaryFile>

    <keyFile type="System.String">Library1.snk</keyFile>

    <pdbFile type="System.String">bin\Debug\ClassLibrary1.pdb</pdbFile>

    <instrumentInPlace type="System.Boolean">True</instrumentInPlace>

    <outputDirectory type="System.String" />

  </element>

  <element type="Microsoft.VisualStudio.TestTools.Common.CodeCoverageItem">

    <binaryFile type="System.String">bin\Debug\ClassLibrary2.dll</binaryFile>

    <keyFile type="System.String">Library2.snk</keyFile>

    <pdbFile type="System.String">bin\Debug\ClassLibrary2.pdb</pdbFile>

    <instrumentInPlace type="System.Boolean">False</instrumentInPlace>

    <outputDirectory type="System.String" />

  </element>

См. также

Задачи

Практическое руководство. Изменение файла конфигурации тестового запуска

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

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

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

Выполнение теста из командной строки