Aggiornamento di unit test da Visual Studio 2010

Visual Studio 2012 include la compatibilità con i progetti di test Visual Studio 2010 SP1.Ad esempio, i progetti di test creati con Visual Studio 2010 SP1 possono essere aperti utilizzando Visual Studio 2012 senza aggiornamento.Pertanto, il team può utilizzare sia Visual Studio 2010 SP1 che Visual Studio 2012 per lavorare sullo stesso progetto di test.Per ulteriori informazioni, vedere Upgrading tests from Visual Studio 2010.

Visual Studio 2012 introduce diverse modifiche per gli unit test.A causa di queste modifiche, è importante comprendere i problemi di compatibilità tra versioni precedenti di Visual Studio e Visual Studio 2012.Tra le modifiche dei test d'unità, un cambiamento significativo è che Visual Studio 2012 include più di un modello di progetto di test, incluso un modello di progetto di test d'unità.I nuovi test d'unità vengono aggiunti al nuovo modello di progetto dei test d'unità.I test d'unità possono essere inclusi in un nuovo modello di progetto di test denominato il modello di progetto del test codificato dell'interfaccia utente.Per ulteriori informazioni sui nuovi modelli di progetto di test, vedere Aggiornamento dei test da versioni precedenti di Visual Studio.I nuovi progetti di test d'unità non includono un file di impostazione del test per impostazione predefinita.Escludendo il file di impostazione, le prestazioni dei test d'unità sono migliorate.Per compatibilità, è comunque possibile utilizzare progetti di test esistenti create utilizzando Visual Studio 2010.Tuttavia, per motivi di prestazioni, è consigliabile rimuovere il file di impostazioni di test associato al progetto di test a meno che non si abbiano esigenze specifiche per il file di impostazioni di test.Ad esempio, è possibile mantenere il file delle impostazioni di test se l'esecuzione di unit test avviene in un ambiente distribuito o è necessario raccogliere dati diagnostici specifici.Se si dispone di simili necessità, utilizzando il nuovo modello di progetto di unit test, o progetti di test codificati dell'interfaccia utente, è anche possibile aggiungere manualmente un file di impostazioni di test ad essi.

[!NOTA]

Test d'unità esistenti nei progetti di test Visual Studio 2010 SP1 funzioneranno in modo uniforme tra Visual Studio 2010 SP1 e Visual Studio 2012.Non viene apportata alcuna modifica ai file di progetto di test quando un progetto di Visual Studio 2010 contenente test d'unità viene aperto in Visual Studio 2012, o viceversa.

Nota di avvisoAttenzione

Visual Studio 2010 impossibile aprire il progetto C++/CLI destinato al set di strumenti 11,0 (ovvero un progetto creato in Visual Studio 2012).Questa limitazione si applica a tutti i progetti C++/CLI, non solo progetti di unit test C++/CLI.

[!NOTA]

È possibile eseguire i nuovi test d'unità utilizzando vstest.console.exe dalla riga di comando.Per ulteriori informazioni su l vstest.console.exe, vedere Opzioni della riga di comando di VSTest.Console.exe, o eseguire il comando utilizzando l'opzione della guida: vstest.console.exe /?.È possibile continuare ad eseguire i test d'unità esistenti utilizzando MStest.exe.Per ulteriori informazioni, vedere Procedura: eseguire test automatizzati dalla riga di comando tramite MSTest e Opzioni della riga di comando di MSTest.exe.

Un'altra modifica significativa è il nuovo Esplora test.In Visual Studio 2012, alcune finestre di test che potevano risultare familiari nella versione precedente di Visual Studio sono deprecate, ad esempio la finestra Visualizzazione test.Esplora Test di Visual Studio è progettato per supportare al meglio gli sviluppatori e i team che incorporano i test d'unità nelle procedure di sviluppo software.Per ulteriori informazioni, vedere Esecuzione di unit test con Esplora test.

Compatibilità dei problemi in Visual Studio 2010 SP1 e Visual Studio 2012

Di seguito sono riportati alcuni problemi che possono presentarsi quando si esegue la migrazione di test d'unità tra Visual Studio 2010 SP1 e Visual Studio 2012:

Funzionalità dei test d'unità

Problema

Soluzione

Gli elenchi di test (file con estensione .vsmdi) sono deprecati in Visual Studio 2012.

Non sarà più possibile creare nuovi elenchi di test (file .vsmdi) o eseguire gli elenchi di test da Visual Studio.

SuggerimentoSuggerimento
Le categorie di test offrono maggiore flessibilità rispetto agli elenchi di test delle versioni precedenti di Microsoft Visual Studio.È possibile utilizzare operatori logici con le categorie per eseguire insieme test di più categorie oppure limitare i test a quelli che appartengono a più categorie.Le categorie di test sono facili da aggiungere man mano che si creano metodi di test e non è necessario mantenere elenchi di test dopo avere creato i metodi di test.Tramite le categorie di test, non è necessario archiviare ed estrarre il <solution name>.vsmdi che gestisce gli elenchi di test.Per ulteriori informazioni, vedere Definizione di categorie per raggruppare i test.

Le funzioni di accesso private sono deprecate in Visual Studio 2012.

Nelle versioni precedenti di Visual Studio, era possibile utilizzare Publicize per specificare le API interne e creare la controparte pubblica API che è possibile chiamare nei test, che a sua volta, richiama le API interne del proprio prodotto.È quindi possibile utilizzare la generazione di codice per creare gli stub dei test e generare frammenti di codice negli stub.

Non sarà più possibile creare funzioni di accesso private.

  • I progetti di test di Visual Studio 2010 saranno compilate e funzioneranno in Visual Studio 2012.La compilazione includerà gli avvisi di output.

  • Se è necessario testare le API interne, si dispone di queste opzioni:

    • Utilizzare la classe PrivateObject per semplificare l'accesso alle API interne e private nel codice.Ciò è presente nell'assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll.

    • Creare un reflection framework che può riflettere fuori dal codice per accedere alle API private o interne.

    • Se il codice a cui si sta tentando di accedere è interno, si potrebbe accedere alle API tramite InternalsVisibleToAttribute così il codice dei test può accedere alle API interne.

L'impatto sul test è stato rimosso

Condivisione dei risultati tramite i log TRX da Esplora test.

È comunque possibile recuperare i log di TRX sia da riga di comando che da Team Build.

Code coverage con unit test nativi C++

Quando l'unit test c++ non riesce e il code coverage sono abilitate, non esiste alcuna traccia dello stack dell'errore.

La soluzione consiste di eseguire unit test C++ senza code coverage e di ottenere lo stack per identificare il problema.

Vedere anche

Concetti

compatibilità di Visual Studio 11

Verifica del codice tramite unit test

Aggiornamento dei test da versioni precedenti di Visual Studio

Aggiornamento dei test codificati dell'interfaccia utente da Visual Studio 2010