Configurazione di unit test mediante un file .runsettings
Gli unit test in Visual Studio 2012 è possibile configurare utilizzando un file di .runsettings.Ad esempio, è possibile modificare .NET Framework in cui i test verranno eseguiti, la directory in cui i risultati del test verranno recapitati e i dati raccolti durante l'esecuzione dei test.
[!NOTA]
.runsettings e .testsettings
.runsettings è nuovo in Visual Studio 2012.Se si ha dimestichezza con di unit test nelle versioni precedenti di Visual Studio, è possibile conoscere i file di .testsettings.È comunque possibile utilizzare .testsettings in Visual Studio 2012, pertanto tutte le configurazioni di test scritto per le versioni precedenti funzioneranno comunque.Ma .testsettings può essere utilizzato per configurare solo i test creati per l'adattatore MSTest.Al contrario, .runsettings può essere utilizzato con tutti gli adattatori compilati per il framework estensibile di unit test in Visual Studio 2012, come xunit.rete e NUnit.
I test che utilizzano i file di .testsettings può essere più lenta di test che utilizzano i file di .runsettings, o per il quale non viene file di configurazione assenti.
È necessario disporre di un file di .testsettings per alcuni tipi di test:
Test distribuiti in un ambiente lab.
Prestazioni Web e i test di carico.
Personalizzando alcuni tipi di adattatori dati di diagnostica, come IntelliTrace e il log eventi.
Per ulteriori informazioni su .testsettings, vedere Specifica delle impostazioni test di Visual Studio.
Personalizzare i test con un file di .runsettings
Aggiungere un file XML nella soluzione di Visual Studio e rinominarlo in modo che l'estensione di file sia .runsettings.
Sostituire il contenuto del file con esempio.
Modificarlo alle proprie esigenze.
Scegliere dal menu Prova, scegliere Prova impostazioni, Seleziona file di impostazioni test.
È possibile creare più file di .runsettings nella soluzione e le abilitate o disabilitate in momenti diversi tramite il menu Prova impostazioni.
Copiare il file di esempio .runsettings
Di seguito è riportato un tipico file di .runsettings.Ogni elemento del file è facoltativo, perché ogni valore 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 resto di questo argomento viene descritto il contenuto del file.
Modificare il file di .runsettings
Il file di .runsettings presenta gli elementi seguenti.
Configurazione di esecuzione dei test
Nodo |
Predefinito |
Valori |
---|---|---|
ResultsDirectory |
La directory in cui i risultati del test saranno posizionati. |
|
TargetFrameworkVersion |
Framework40 |
Framework35, Framework40, Framework45 Indica che la versione del framework di unit test viene utilizzata per individuare ed eseguire i test.Può essere diversa da quella piattaforma .NET specificato 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 di DataCollectors specifica le impostazioni degli adattatori dati di diagnostica.Gli adattatori dati di diagnostica vengono utilizzati per raccogliere informazioni aggiuntive sull'ambiente e l'applicazione sottoposta a test.Ogni adattatore è impostazioni predefinite e fornire solo le impostazioni se non si desidera utilizzare 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 ulteriori informazioni su come personalizzare le impostazioni di code coverage, vedere Personalizzazione dell'analisi code coverage.
Altri adattatori dati di diagnostica
L'adattatore code coverage è attualmente l'unico adattatore che possono essere personalizzati utilizzando il file delle impostazioni di esecuzione.
Per personalizzare qualsiasi altro tipo di adattatore dati di diagnostica, è necessario utilizzare un file di impostazioni test.Per ulteriori informazioni, vedere Specifica delle impostazioni test di Visual Studio.
Impostazioni esecuzione test MSTest
Queste impostazioni sono specifiche dell'adattatore di test che esegue i metodi di test con l'attributo di [TestMethod].
Configurazione |
Predefinito |
Valori |
---|---|---|
ForcedLegacyMode |
false |
In Visual Studio 2012, l'adattatore MSTest è stato ottimizzato per rendere più veloce e più scalabile.Un comportamento, come l'ordine in cui vengono eseguiti i test, potrebbe non essere esattamente mentre era in versioni precedenti di Visual Studio.Impostare questo valore true per utilizzare l'adattatore di test precedenti. Ad esempio, è possibile utilizzare questo se è presente un file app.config specificato per un unit test. È consigliabile provare a effettuare il refactoring dei test per consentire di utilizzare il più recente adattatore. |
IgnoreTestImpact |
false |
La funzionalità dell'impatto sui test assegna la priorità ai test interessati da modifiche recenti, una volta allontanato in MSTest o da Microsoft Test Manager.Questa impostazione disattivare la funzionalità.Per ulteriori 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 utilizzare con l'adattatore di test di MS di seguito.È inoltre possibile specificare un file di impostazioni di test utilizzando il menu Prova, Prova impostazioni, Seleziona file di impostazioni test. Se si specifica questo valore, ForcedlegacyMode viene impostato automaticamente su true. |
|
KeepExecutorAliveAfterLegacyRun |
false |
Dopo un'esecuzione dei test, MSTest viene arrestato.Il processo che viene avviata come parte del test viene interrotto attualmente.Se si desidera mantenere l'utilità di esecuzione del test attivo, attivare questa configurazione su true. Ad esempio, è possibile utilizzare questo per mantenere il browser tra i test codificati dell'interfaccia utente. |
DeploymentEnabled |
true |
Se si imposta questo false, elementi di distribuzione specificati nel metodo di test non verrà copiato nella directory di distribuzione. |
CaptureTraceOutput |
true |
È possibile scrivere nell'analisi di debug dal metodo di test utilizzando Trace.WriteLine.Utilizzando questa configurazione, è possibile disattivare queste traccia di debug. |
DeleteDeploymentDirectoryAfterTestRunIsComplete |
true |
È possibile mantenere la directory di distribuzione dopo un'esecuzione di test impostando questo valore su false. |
MapInconclusiveToFailed |
false |
Se i risultati di un test con lo stato senza risultati, in genere è associato allo stato eseguito il test Esplora Risorse.Se si desidera che i test senza risultati da indicare come non superato, utilizzare la configurazione. |
InProcMode |
false |
Se si desidera che i test da eseguire nello stesso processo dell'adattatore di test di MS, impostare questo valore su true.Questa impostazione fornisce un lieve miglioramento delle prestazioni.Ma se il termine di un test con un'eccezione, gli altri test non verrà continuata. |
Vedere anche
Concetti
Personalizzazione dell'analisi code coverage