Изменение 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>
См. также
Задачи
Практическое руководство. Изменение файла конфигурации тестового запуска
Основные понятия
Инструментирование и повторная подпись сборок