Condividi tramite


Esecuzione di unit test con Esplora test

Utilizzare il test Esplora test per eseguire unit test da Visual Studio o progetti di unit test di terze parti, raggruppare i test in categorie, filtrare l'elenco dei test e creare, salvare ed eseguire playlist di test.È inoltre possibile eseguire il debug dei test e analizzare le prestazioni e il code coverage del test.

Contenuto

Framework e progetti dei test d'unità

Eseguire test in Esplora test

Visualizzare i risultati dei test

Raggruppare e filtrare l'elenco di test

Creare playlist personalizzate

Eseguire il debug e analizzare gli unit test

Risorse esterne

Framework e progetti dei test d'unità

Visual Studio include i framework per i test d'unità Microsoft sia per codice gestito che per codice nativo.Tuttavia, Esplora test può anche eseguire qualsiasi framework per test d'unità che implementi un adattatore ad Esplora test.Per ulteriori informazioni sull'installazione dei framework di terze parti di test d'unità, vedere Procedura: installare framework unit test di terze parti

È possibile eseguire test dai progetti di test e da classi di test che fanno parte dei progetti di codice di produzione.I progetti di test possono utilizzare i diversi framework di test d'unità.Quando il codice sotto test è stato scritto per .NET Framework, il progetto di test può essere scritto in qualsiasi linguaggio destinato anche a .NET Framework, indipendentemente dal linguaggio del codice di destinazione.I progetti di codice C/C++ nativi devono essere testati tramite il framework unit test c++.

Back to topContenuto

Eseguire test in Esplora test

Eseguire test**|**Eseguire test dopo ogni compilazione

Quando si compila il progetto di test, i test vengono visualizzati in Esplora test.Se Esplora test non è visibile, scegliere Test dal menu di Visual Studio, scegliere Windows, quindi scegliere Esplora test.

Unit Test Explorer

Quando si eseguono, si scrivono e si rieseguono i test, Esplora test mostra i risultati nei gruppi predefiniti Test non superati, Test superati, Test ignorati e Test non eseguiti.È possibile modificare la modalità con cui Esplora test raggruppa i test.

È possibile eseguire molte delle operazioni di ricerca, dell'organizzazione ed eseguire i test dalla barra degli strumenti di Esplora test.

Run tests from the Test Explorer toolbar

Back to topContenuto

Eseguire test

È possibile eseguire tutti i test nella soluzione, tutti i test in un gruppo, o un set di test selezionati.Eseguire una delle operazioni seguenti:

  • Per eseguire tutti i test in una soluzione, scegliere Esegui tutto.

  • Per eseguire tutti i test in un gruppo predefinito, scegliere Esegui… quindi selezionare il gruppo dal menu.

  • Selezionare i singoli test da eseguire, scegliere dal menu di scelta rapida per un test quindi scegliere Esegui test selezionati.

La barra superato/non superato nella parte superiore della finestra di esplorazione del test viene eseguita durante l'esecuzione.Al termine dell'esecuzione del test, la barra superato/non superato diventa verde se tutti i test passano oppure rossa se qualche test ha esito negativo.

Back to topContenuto

Eseguire test dopo ogni compilazione

Nota di avvisoAttenzione

L'esecuzione di unit test dopo ogni compilazione è supportata solo in Visual Studio Ultimate e nelle versioni Premium.

Run after build

Per eseguire gli unit test dopo ogni compilazione locale, selezionare Test dal menu standard, quindi scegliere Esegui test dopo compilazione nella barra degli strumenti Esplora test.

Back to topContenuto

Visualizzare i risultati dei test

Visualizzare dettagli test**|**Visualizzare il codice sorgente di un metodo di test

Quando si eseguono, si scrivono e si rieseguono i test, Esplora test mostra i risultati nei gruppi Test non superati, Test superati, Test ignorati e Test non eseguiti.Il riquadro dei dettagli nella parte inferiore di Esplora test visualizza un riepilogo dell'esecuzione dei test.

Visualizzare dettagli test

Per visualizzare i dettagli di un singolo test, selezionare il test.

Test execution details

Nel riquadro dei dettagli del test vengono visualizzate le informazioni seguenti:

  • Il nome del file di origine e il numero di riga del metodo di test.

  • Stato del test.

  • Il tempo impiegato per l'esecuzione del metodo di test.

Se il test ha esito negativo, nel riquadro dei dettagli vengono visualizzati anche:

  • Il messaggio restituito dal framework di unit test per il test.

  • L'analisi dello stack quando il test fallisce.

Back to topContenuto

Visualizzare il codice sorgente di un metodo di test.

Per visualizzare il codice sorgente per un metodo di test nell'editor di Visual Studio, selezionare il test e quindi scegliere Apri test dal menu di scelta rapida (tastiera: F12).

Back to topContenuto

Raggruppare e filtrare l'elenco di test

Raggruppamento dell'elenco di test**|Raggruppare per tratti|**Cercare e filtrare l'elenco di test

Esplora test consente di raggruppare i test in categorie predefinite.La maggior parte dei framework di unit test in esecuzione in Esplora test consente di definire le categorie e le coppie categoria/valore personalizzate per raggruppare i test.È inoltre possibile filtrare l'elenco di test da stringhe di corrispondenza con le proprietà del test.

Raggruppamento dell'elenco di test

Per modificare come sono organizzati i test, scegliere la freccia in giù accanto al pulsante Test Explorer group buttonRaggruppa per e selezionare i nuovi criteri di raggruppamento.

Group tests by category in Test Explorer

Gruppi di Esplora test

Raggruppare

Descrizione

Durata

Raggruppa i test per tempo di esecuzione: Veloce, Media e Lenta.

Risultato

Raggruppa i test in base ai risultati di esecuzione: Test non superati, Test ignorati, Test superati.

Tratti

Raggruppa i test per coppie categoria/chiave specificate.La sintassi per specificare i valori e le categorie di tratto viene definita dal framework unit test.

Progetto

Raggruppa i test in base al nome dei progetti.

Back to topContenuto

Raggruppare per tratti

Un tratto è in genere una coppia nome/valore di categoria, ma può anche essere una singola categoria.I tratti possono essere assegnati ai metodi identificati come metodo di test dal framework unit test.Un framework unit test è in grado di definire le categorie di tratto.È possibile aggiungere valori alle categorie di tratto per definire le coppie nome nome/valore di categoria.La sintassi per specificare i valori e le categorie di tratto viene definita dal framework unit test.

Tratti nel Framework per unit test di Microsoft per Codice gestito

Nel framework unit test Microsoft per le applicazioni gestite definire una coppia nome/valore di tratti in un attributo TestPropertyAttribute.Il framework di test contiene anche questi tratti predefiniti:

Tratto

Descrizione

OwnerAttribute

La categoria del proprietario è definita dal framework di unit test ed è necessario specificare un valore stringa del proprietario.

PriorityAttribute

La categoria Priorità è definita dal framework di unit test ed è necessario specificare un valore integer della priorità.

TestCategoryAttribute

L'attributo TestCategory consente di fornire una categoria senza un valore.Una categoria definita dall'attributo TestCategory può anche essere la categoria di un attributo TestProperty.

TestPropertyAttribute

L'attributo TestProperty consente di definire la coppia categoria/valore di tratto.

Tratti nel Framework per unit test di Microsoft per C++

Per definire un tratto, utilizzare la macro TEST_METHOD_ATTRIBUTE.Ad esempio, per definire un tratto denominato TEST_MY_TRAIT:

#define TEST_MY_TRAIT(traitValue) TEST_METHOD_ATTRIBUTE(L"MyTrait", traitValue)

Per utilizzare il tratto definito negli unit test:

BEGIN_TEST_METHOD_ATTRIBUTE(Method1)
    TEST_OWNER(L"OwnerName")
    TEST_PRIORITY(1)
    TEST_MY_TRAIT(L"thisTraitValue")
END_TEST_METHOD_ATTRIBUTE()

TEST_METHOD(Method1)
{   
    Logger::WriteMessage("In Method1");
    Assert::AreEqual(0, 0);
}

Macro di attributo di tratto C++

Macro

Descrizione

TEST_METHOD_ATTRIBUTE(attributeName, attributeValue)

Utilizzare la macro TEST_METHOD_ATTRIBUTE per definire un tratto.

TEST_OWNER(ownerAlias)

Utilizzare il tratto predefinito del proprietario per specificare un proprietario del metodo di test.

TEST_PRIORITY(priority)

Utilizzare il tratto predefinito di priorità per assegnare le priorità relative ai metodi di test.

Back to topContenuto

Cercare e filtrare l'elenco di test

È possibile utilizzare filtri di Esplora test per limitare i metodi di test nei progetti visualizzati ed eseguiti.

Quando si digita una stringa nella casella di ricerca Esplora test e si sceglie INVIO, l'elenco di test viene filtrato per visualizzare solo i test di cui i nomi completi contengono la stringa.

Per filtrare per diversi criteri:

  1. Aprire l'elenco a discesa a destra della casella di ricerca.

  2. Scegliere un nuovo criterio.

  3. Immettere il valore del filtro tra virgolette.

Filter tests in Test Explorer

[!NOTA]

Per le ricerche non viene fatta distinzione tra maiuscole e minuscole e corrispondono alla stringa specificata in base a ogni parte del valore dei criteri.

Qualificatore

Descrizione

Tratto

Cerca corrispondenze sia nella categoria di tratto sia nel valore.La sintassi per specificare che i valori e le categorie di tratto vengono definiti dal framework unit test.

Progetto

Cerca corrispondenze nei nomi di progetti di test.

Messaggio di errore

Cerca corrispondenze nei messaggi di errore definiti dall'utente restituiti da asserzioni non riuscite.

Percorso di file

Cerca corrispondenze nel nome file completo di file di origine di test.

Nome completo

Cerca corrispondenze nel nome file completo di spazi dei nomi di test, classi e metodi.

Output

Cerca i messaggi di errore definiti dall'utente che vengono scritti nell'output standard (stdout) o nell'errore standard (stderr).La sintassi per specificare che i messaggi di output vengono definiti dal framework unit test.

Risultato

Cerca corrispondenze nei nomi della categoria Esplora test: Test non superati, Test ignorati, Test superati.

Per escludere un subset dei risultati di un filtro, utilizzare la seguente sintassi:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

Di seguito è riportato un esempio:

FullName:"MyClass" - FullName:"PerfTest"

restituisce tutti i test in cui è incluso "MyClass" nel nome, ad eccezione di quei test in cui è incluso anche "PerfTest" nel nome.

Back to topContenuto

Creare delle playlist personalizzate

È possibile creare e salvare un elenco di test che si desidera eseguire o visualizzare come gruppo.Quando si seleziona una playlist, i test nell'elenco vengono visualizzati Esplora test.È possibile aggiungere un test a una playlist e tutti i test nel progetto sono disponibili quando si sceglie la playlist predefinita Tutti i test.

Choose a playlist

Per creare una playlist, selezionare uno o più test in Esplora Risorse.Nel menu di scelta rapida scegliere Aggiungi alla playlist, Nuova playlist.Salvare il file con il nome e il percorso specificati nella finestra di dialogo Crea nuova playlist.

Per aggiungere test a una playlist, selezionare uno o più test in Esplora Risorse.Nel menu di scelta rapida scegliere Aggiungi alla playlist, quindi scegliere la playlist a cui si desidera aggiungere i test.

Per aprire una playlist, selezionare Test, playlist dal menu di Visual Studio e scegliere dall'elenco di playlist utilizzate di recente, oppure scegliere Apri playlist per specificare il nome e il percorso di playlist.

Back to topContenuto

Eseguire il debug e analizzare gli unit test

Eseguire il debug degli unit test**|Diagnosticare i problemi di prestazione del metodo di test|**Analizzare il code coverage di unit test

Eseguire il debug degli unit test

È possibile utilizzare Esplora test per avviare una sessione di debug per i test.L'esecuzione passo passo del codice con il debugger di Visual Studio porta in modo semplice avanti e indietro tra unit test e il progetto sottoposto a test.Per avviare il debug:

  1. Nell'editor di Visual Studio, impostare un punto di interruzione in uno o più metodi di test sui quali si desidera eseguire il debug.

    [!NOTA]

    Poiché i metodi di test possono essere eseguiti in qualsiasi ordine, impostare i punti di interruzione in tutti i metodi di test sui quali si desidera eseguire il debug.

  2. In Esplora test, selezionare i metodi di test e quindi scegliere Esegui debug test selezionati dal menu di scelta rapida.

Per ulteriori informazioni sul debugger, vedere Debug in Visual Studio.

Back to topContenuto

Diagnosticare i problemi di prestazione del metodo di test

Per diagnosticare perché un metodo di test sta richiedendo troppo tempo, selezionare il metodo in Esplora test e quindi scegliere il profilo dal menu di scelta rapida.Vedere Analisi delle prestazioni dell'applicazione tramite gli strumenti di profilatura.

Analizzare il code coverage di unit test

[!NOTA]

Il code coverage dei test d'unità è disponibile solo in Visual Studio Ultimate e Visual Studio Premium.

È possibile determinare la quantità di codice del prodotto che effettivamente viene testata dagli unit test utilizzando lo strumento di code coverage di Visual Studio.È possibile eseguire code coverage sui test selezionati o su tutti i test in una soluzione.

Per eseguire code coverage per i metodi di test in una soluzione:

  1. Scegliere Test dal menu di Visual Studio e quindi scegliere Analizza code coverage.

  2. Scegliere uno dei seguenti comandi dal sotto menu:

    • Test selezionati esegue i metodi di test selezionati in Esplora Test.

    • Tutti i test esegue tutti i metodi di test nella soluzione.

La finestra Risultati code coverage visualizza la percentuale dei blocchi di codice del prodotto testati per riga, funzione, classe, spazio dei nomi e modulo.

Per ulteriori informazioni, vedere Utilizzo di code coverage per determinare la quantità di codice testato.

Back to topContenuto

Risorse esterne

Linee guida

Test per una distribuzione continua con Visual Studio 2012 – Capitolo 2: Unit Testing: Testing the Inside

Vedere anche

Concetti

Verifica del codice tramite unit test

Procedura: eseguire uno unit test come processo a 64 bit