Modifica di un file XML di configurazione dell'esecuzione di un test
Aggiornamento: novembre 2007
Come descritto in Procedura: modificare il file di configurazione dell'esecuzione di un test, è possibile modificare la configurazione di esecuzione dei test in due modi: utilizzando l'editor di configurazione di esecuzione dei test o modificando l'XML del file di configurazione di esecuzione dei test. In generale, tentare dapprima di apportare modifiche utilizzando l'editor di configurazione di esecuzione dei test. Se non è possibile cambiare in questo modo l'impostazione di configurazione desiderata, modificare il file di configurazione di esecuzione dei test.
Per facilitare la scelta del metodo da utilizzare, in questo argomento viene illustrata la struttura generale di un file di configurazione di esecuzione dei test e vengono forniti due esempi di impostazioni che è possibile modificare manualmente ma non tramite l'editor di configurazione di esecuzione dei test.
Quando si modificano le impostazioni di configurazione di esecuzione dei test utilizzando l'editor, tali modifiche vengono riflesse in questo file. Quando si modificano i valori in questo file, alcune modifiche, ma non tutte, vengono riflesse nell'editor di configurazione di esecuzione dei test.
Per ulteriori informazioni sull'utilizzo dell'editor di configurazione di esecuzione dei test, vedere Procedura: specificare la configurazione di esecuzione di un test.
Esempio di file di configurazione di esecuzione dei test
Nel file dell'esempio seguente alcuni elementi, visualizzati in grassetto, corrispondono ad aree generali delle impostazioni che è possibile specificare tramite l'editor di configurazione di esecuzione dei test.
<?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>
Esempi
Nelle sezioni seguenti viene illustrato come apportare modifiche specifiche nel file XML che controlla la configurazione dell'esecuzione dei test. È necessario apportare queste modifiche nell'XML perché non è possibile utilizzare l'editor di configurazione di esecuzione dei test a tale scopo.
Modifica del percorso predefinito per i risultati dei test
Modifica del percorso della strumentazione e specifica di file di chiave aggiuntivi
Modifica del percorso predefinito per i risultati dei test
Quando si eseguono test, i relativi risultati vengono automaticamente salvati su disco in un percorso predefinito. Se non si modifica il file XML di configurazione di esecuzione dei test, la variabile booleana useDefaultDeploymentRoot mantiene il valore predefinito, True. In questo caso, i risultati dei test vengono salvati nei seguenti percorsi:
I risultati dei test eseguiti nell'IDE di Visual Studio vengono salvati nella cartella TestResults all'interno della cartella della soluzione corrente.
I risultati dei test eseguiti utilizzando il comando della riga di comando MSTest.exe vengono salvati nella cartella TestResults all'interno della cartella corrente.
È possibile cambiare questo percorso predefinito modificando due impostazioni. Impostare useDefaultDeploymentRoot su False. Specificare quindi un nuovo valore per la cartella predefinita.
Modificare, ad esempio:
<useDefaultDeploymentRoot type="System.Boolean">True</useDefaultDeploymentRoot>
in:
<useDefaultDeploymentRoot type="System.Boolean">False</useDefaultDeploymentRoot >
<userDeploymentRoot
type="System.String">C:\My Documents\Visual Studio\Projects\MyResults</userDeploymentRoot>
<runDeploymentRoot type="System.String" />
Modifica del percorso della strumentazione di tipo code coverage e specifica di file di chiave aggiuntivi per la ripetizione della firma
Nell'editor di configurazione di esecuzione dei test è possibile selezionare gli elementi da instrumentare per attivare il code coverage. È inoltre possibile specificare se instrumentarli o meno sul posto e definire un file di chiave utilizzato per firmare di nuovo gli assembly con nome sicuro dopo che sono stati instrumentati.
Queste impostazioni si applicano all'intera esecuzione dei test, ossia a tutti gli assembly. Se si desidera utilizzare impostazioni diverse con i singoli assembly, è necessario utilizzare il file XML di configurazione di esecuzione dei test.
In questo esempio vengono utilizzati due file binari di code coverage: ClassLibrary1.dll e ClassLibrary2.dll. È possibile specificare, ad esempio, che ClassLibrary1.dll deve essere instrumentato sul posto, a differenza di ClassLibrary2.dll. È inoltre possibile specificare che ClassLibrary1.dll deve essere firmato di nuovo con Library1.snk dopo la strumentazione e che ClassLibrary2.dll deve essere firmato con un file di chiave diverso, Library2.snk.
Nell'XML seguente viene illustrata la procedura da utilizzare a tale scopo. Gli elementi utilizzati, ognuno dei quali rappresenta un assembly, sono elementi figlio dell'elemento <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>
Vedere anche
Attività
Procedura: modificare il file di configurazione dell'esecuzione di un test
Concetti
Strumentazione e ripetizione della firma di assembly