Condividi tramite


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

  1. 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.

  2. Sostituire il contenuto del file con l'esempio.

    Modificarlo in base alle proprie esigenze.

  3. 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.

Abilitazione di un file di impostazioni di esecuzione

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.

<RunSettings>
  <MSTest>
    <SettingsFile>my.testsettings</SettingsFile> 
    <ForcedLegacyMode>true</ForcedLegacyMode> 
  </MSTest>
</RunSettings>

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

Altre risorse

Specifica delle impostazioni test di Visual Studio