Configurazione di unit test mediante un file .runsettings
Gli unit test in Visual Studio possono essere configurati usando un file di tipo *.runsettings.Il nome del file non è rilevante, purché si usi l'estensione '.runsettings'. Ad esempio, è possibile modificare la versione di .NET Framework in cui verranno eseguiti i test, la directory in cui vengono recapitati i risultati e i dati raccolti durante l'esecuzione dei test.
Se non si vogliono eseguire configurazioni particolari, non sarà necessario alcun file di tipo *.runsettings.L'uso più frequente di questo file consiste nel personalizzare il Code Coverage.
[!NOTA]
File con estensione testsettings e runsettings
Sono disponibili due tipi di file per la configurazione dei test.I file di tipo *.runsettings sono usati per gli unit test.I file di tipo *.testsettings sono usati per test in un ambiente lab, test relativi a prestazioni Web e caricamento e per la personalizzazione di alcuni tipi di adattatori di dati di diagnostica, ad esempio Intellitrace e adattatori di log eventi.
Nelle edizioni precedenti di Visual Studio, fino alla 2010, la personalizzazione degli unit test è eseguita tramite i file di tipo *.testsettings.È possibile usare ancora questa procedura, ma l'esecuzione dei test sarà più lenta rispetto all'uso delle configurazioni equivalenti in un file di tipo *.runsettings.
Personalizzazione dei test con un file con estensione runsettings
Aggiungere un file XML alla soluzione di Visual Studio e rinominarlo in test.runsettings.Il nome del file non è rilevante, ma l'estensione deve essere runsettings.
Sostituire il contenuto del file con l'esempio.
Modificarlo in base alle proprie esigenze.
Nel menu Test scegliere Impostazioni test, quindi Seleziona file di impostazioni test.
È possibile creare più file di tipo *.runsettings nella soluzione e abilitarli o disabilitarli in momenti diversi tramite il menu Impostazioni test.
Copiare il file di esempio con estensione runsettings
Di seguito è riportato un tipico file di tipo *.runsettings.Ogni elemento del file è facoltativo, perché ogni valore dispone di un'impostazione predefinita.
<?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>
Il file con estensione runsettings viene usato anche per configurare il code coverage.
Nella parte restante di questo argomento viene descritto il contenuto del file.
Modificare il file con estensione runsettings
Il file con estensione runsettings include dei seguenti elementi.
Configurazione dell'esecuzione dei test
Nodo |
Predefinito |
Valori |
---|---|---|
ResultsDirectory |
La directory in cui verranno inseriti i risultati del test. |
|
TargetFrameworkVersion |
Framework40 |
Framework35, Framework40, Framework45 Indica quale versione del framework unit test viene usata per individuare ed eseguire i test.Può essere diversa dalla versione della piattaforma .NET specificata nelle proprietà di compilazione del progetto di unit test. |
TargetPlatform |
x86 |
x86, x64 |
TreatTestAdapterErrorsAsWarnings |
false |
false, true |
Adattatori dati di diagnostica (agenti di raccolta dati)
L'elemento DataCollectors specifica le impostazioni degli adattatori dati di diagnostica.Gli adattatori dati di diagnostica vengono usati per raccogliere informazioni aggiuntive sull'ambiente e l'applicazione sottoposta a test.Ogni adattatore dispone di impostazioni predefinite ed è necessario fornire le impostazioni solo se non si desidera usare le impostazioni predefinite.
Adattatore di code coverage
L'agente di raccolta dati di code coverage crea un log in cui le parti del codice dell'applicazione sono state eseguite nel test.Per altre informazioni sulla personalizzazione delle impostazioni per il code coverage, vedere Personalizzazione dell'analisi code coverage.
Altri adattatori dati di diagnostica
L'adattatore code coverage è attualmente l'unico adattatore che può essere personalizzato usando il file di impostazioni esecuzione test.
Per personalizzare qualsiasi altro tipo di adattatore dati di diagnostica, è necessario usare un file di impostazioni di test.Per altre informazioni, vedere Specifica delle impostazioni test di Visual Studio.
Impostazioni di esecuzione MSTest
Queste impostazioni sono specifiche dell'adattatore di test che esegue i metodi di test con l'attributo [TestMethod].
Configurazione |
Predefinito |
Valori |
---|---|---|
ForcedLegacyMode |
false |
In Visual Studio 2012, l'adapter MSTest è stato ottimizzato in modo da essere più veloce e più scalabile.Un comportamento, ad esempio l'ordine in cui vengono eseguiti i test, potrebbe non essere esattamente come quello nelle versioni precedenti di Visual Studio.Impostare questo valore su true per usare l'adattatore di test precedente. Ad esempio, lo si può usare nel caso in cui si disponga di un file app.config specificato per uno unit test. È consigliabile provare a effettuare il refactoring dei test per consentire di usare il più recente adattatore. |
IgnoreTestImpact |
false |
La funzionalità dell'impatto sui test assegna la priorità ai test interessati da modifiche recenti, una volta eseguiti in MSTest o da Microsoft Test Manager.Questa impostazione disattiva la funzionalità.Per altre informazioni, vedere Procedura: raccogliere dati per verificare i test da eseguire dopo che sono state apportate modifiche al codice. |
SettingsFile |
È possibile specificare un file di impostazioni di test da usare con l'adattatore di test Microsoft.È inoltre possibile specificare un file di impostazioni test usando il menu Test, Impostazioni test, Seleziona file di impostazioni test. Se si specifica questo valore, è necessario impostare anche ForcedlegacyMode su true.
|
|
KeepExecutorAliveAfterLegacyRun |
false |
Una volta completata l'esecuzione di un test, MSTest viene arrestato.Qualsiasi processo avviato come parte del test verrà interrotto in questo momento.Se si desidera che l'executor di test rimanga attivo, impostare questa configurazione su true. Ad esempio, lo si può usare per mantenere in esecuzione il browser tra i test codificati dell'interfaccia utente. |
DeploymentEnabled |
true |
Se viene impostata su false, gli elementi della distribuzione specificati nel metodo di test non verranno copiati nella directory di distribuzione. |
CaptureTraceOutput |
true |
È possibile scrivere nella traccia di debug dal metodo di test usando Trace.WriteLine.Utilizzando questa configurazione, è possibile disattivare queste tracce di debug. |
DeleteDeploymentDirectoryAfterTestRunIsComplete |
true |
È possibile mantenere la directory di distribuzione dopo un'esecuzione di test impostando questo valore su false. |
MapInconclusiveToFailed |
false |
Se lo stato di un test è Senza risultati, in genere ne viene eseguito il mapping allo stato Ignorato in Esplora test.Se si desidera che i test senza risultati vengano mostrati come Test non superato, usare questa configurazione. |
InProcMode |
false |
Se si desidera che i test vengano eseguiti nello stesso processo dell'adattatore di test Microsoft, impostare questo valore su true.Questa impostazione fornisce un lieve miglioramento delle prestazioni.Se un test viene terminato con un'eccezione, gli altri test non proseguono. |
Vedere anche
Concetti
Personalizzazione dell'analisi code coverage