Partager via


Modification d'un fichier XML de configuration de série de tests

Mise à jour : novembre 2007

Comme décrit dans Comment : modifier un fichier de configuration de série de tests, vous pouvez modifier une configuration de série de tests de deux façons : en utilisant l'éditeur de configuration de série de tests ou en modifiant le XML du fichier de configuration de série de tests. En général, essayez d'abord d'apporter des modifications à l'aide de l'éditeur de configuration de série de tests. Si le paramètre de configuration particulier que vous souhaitez changer ne peut pas être modifié ainsi, modifiez le fichier de configuration de série de tests.

Pour vous aider à déterminer quelle méthode utiliser, cette rubrique affiche la structure générale d'un fichier de configuration de série de tests et fournit deux exemples de paramètres que vous pouvez modifier manuellement mais pas en utilisant l'éditeur de configuration de série de tests.

Lorsque vous modifiez des paramètres de configuration de série de tests en utilisant l'éditeur de configuration de série de tests, vous pouvez voir ces modifications répercutées dans ce fichier. Lorsque vous modifiez des valeurs dans ce fichier, vous pouvez voir certaines de ces modifications, mais pas toutes, répercutées dans l'éditeur de configuration de série de tests.

Pour plus d'informations sur l'utilisation de l'éditeur de configuration de série de tests, consultez Comment : spécifier la configuration d'une série de tests.

Exemple de fichier de configuration de série de tests

Dans l'exemple de fichier suivant, certains éléments sont affichés en gras. Ces éléments correspondent à des zones générales de paramètres que vous pouvez créer en utilisant l'éditeur de configuration de série de tests.

<?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>

Exemples

Les sections suivantes indiquent comment apporter des modifications spécifiques dans le fichier XML qui contrôle la configuration de série de tests. Vous devez apporter ces modifications dans le fichier XML parce que vous ne pouvez pas les faire en utilisant l'éditeur de configuration de série de tests.

  • Changement de l'emplacement par défaut des résultats de tests

  • Changement d'emplacement de l'instrumentation et indication de fichiers de clés supplémentaires

Changement de l'emplacement par défaut des résultats de tests

Lorsque vous exécutez des tests, leurs résultats sont enregistrés automatiquement sur le disque dans un emplacement par défaut. Si vous ne changez pas le fichier XML de configuration de série de tests, la variable booléenne useDefaultDeploymentRoot conserve sa valeur True par défaut. Dans ce cas, les résultats des tests sont enregistrés dans les emplacements suivants :

  • Les résultats des tests que vous exécutez dans l'IDE de Visual Studio sont enregistrés dans le dossier TestResults sous le dossier de solution actuel.

  • Les résultats des tests que vous exécutez à l'aide de la commande de ligne de commande MSTest.exe sont enregistrés dans le dossier TestResults sous le dossier actif.

Vous pouvez changer cet emplacement par défaut en modifiant deux paramètres. En premier lieu, affectez la valeur False à useDefaultDeploymentRoot. Puis, spécifiez une nouvelle valeur pour le dossier par défaut.

Par exemple, remplacez :

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

par :

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

<userDeploymentRoot

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

  <runDeploymentRoot type="System.String" />

Changement d'emplacement de l'instrumentation de couverture de code et indication de fichiers de clés supplémentaires pour une nouvelle signature

Dans l'éditeur de configuration de série de tests, vous pouvez sélectionner des artefacts à instrumenter pour activer la couverture du code. En outre, vous pouvez spécifier s'il faut les instrumenter sur place et indiquer un fichier de clé utilisé pour signer de nouveau des assemblys avec nom fort une fois qu'ils ont été instrumentés.

Ces paramètres s'appliquent à la série de tests entière, ce qui signifie qu'ils sont appliqués à tous les assemblys. Si vous souhaitez utiliser des paramètres différents avec des assemblys individuels, vous devez le faire dans le fichier XML de configuration de série de tests.

L'exemple suivant illustre deux fichiers binaires de couverture du code : ClassLibrary1.dll et ClassLibrary2.dll. Vous pouvez indiquer, par exemple, que ClassLibrary1.dll doit être instrumenté sur place, mais pas ClassLibrary2.dll. En outre, vous pouvez spécifier que ClassLibrary1.dll doit être de nouveau signé après l'instrumentation avec Library1.snk et ClassLibrary2.dll avec un fichier de clé différent, Library2.snk.

Le XML suivant indique comment effectuer cette opération. Les éléments indiqués ici, qui représentent chacun un assembly, sont des éléments enfants de l'élément <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>

Voir aussi

Tâches

Comment : modifier un fichier de configuration de série de tests

Concepts

Instrumentation et nouvelle signature d'assemblys

Autres ressources

Exécution des tests de la ligne de commande