Esecuzione di unit test con Esplora test
Visual Studio Esplora test aiuta ad integrare i test d'unità nel processo di sviluppo.È 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à.In questo argomento, è possibile ottenere ulteriori informazioni su:
Contenuto della sezione
Framework e progetti dei test d'unità
Eseguire i test in Esplora test
Sono in esecuzione test
Esecuzione di test dopo ogni compilazione
Per visualizzare i risultati dei test
Visualizzare i dettagli dei test
Visualizzare il codice sorgente di un metodo di test.
Raggruppamento e filtrandoli l'elenco di test
Raggruppare l'elenco di test
Raggruppamento dei tratti
Individuare e filtrare l'elenco di test
Unit test di debug
Analisi del code coverage di unit test
Diagnosi dei problemi di prestazioni del metodo di test
Risorse esterne
- Linee guida
Framework e progetti dei test d'unità
Visual Studio include i framework per i test d'unità Microsoft per codice gestito e 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 .NET, indipendentemente dal codice di destinazione.I progetti di codice C/C++ nativi devono essere testati tramite il framework unit test c++.
Contenuto della sezione
Eseguire i test in Esplora test
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.
Quando si esegue, si scrive e si riesegue 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.
Sono in esecuzione test
È possibile eseguire tutti i test nella soluzione, tutti i test in un gruppo, o un gruppo 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 qualcuno ha esito negativo.
Esecuzione di test dopo ogni compilazione
Attenzione |
---|
L'esecuzione di unit test dopo ogni compilazione è supportata solo in Visual Studio Ultimate. |
Per eseguire gli unit test dopo ogni compilazione locale, selezionare Test dal menu standard, scegliere Esegui test dopo compilazione nella barra degli strumenti Esplora test. |
Contenuto della sezione
Per visualizzare i risultati dei test
Quando si esegue, si scrive e si riesegue 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 i dettagli dei test
Per visualizzare i dettagli di un singolo test, selezionare il test.
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.
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).
Contenuto della sezione
Raggruppamento e filtrandoli l'elenco di test
Il test Esplora Risorse consente di raggruppare i test in categorie predefinite.La maggior parte dei framework di unit test che operano in esplorazione test consentono di definire le categorie personalizzate e categoria dalle coppie chiave/valore per raggruppare i test.È inoltre possibile filtrare l'elenco delle stringhe della corrispondenza alle proprietà del test.
Raggruppare l'elenco di test
Per modificare la modalità di esecuzione dei test sono organizzati, scegliere la freccia in giù accanto al pulsante Raggruppa per e selezionare i nuovi criteri di raggruppamento.
Verificare i gruppi di navigazione
Raggruppare |
Descrizione |
---|---|
Durata |
I gruppi di test da tempo di esecuzione: Rapida, Medioe Lenta. |
Risultato |
Test dei gruppi dai risultati di esecuzione: Test non riusciti, Test ignorati, Test superati. |
Considerare |
I gruppi verifica bycategory dalle coppie chiave/valore definito.La sintassi per specificare le categorie e i valori di tratto è definita dal framework unit test. |
Progetto |
I gruppi test sotto il nome del progetto. |
Raggruppamento dei tratti
Un tratto è in genere un nome di categoria coppia di valori, 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 di unit test può definire categorie di tratto.È possibile aggiungere valori alle categorie di tratto per definire il proprio nome della categoria dalle coppie chiave/valore.La sintassi per specificare le categorie e i valori di tratto è definita dal framework unit test.
Ad esempio, nel framework unit test Microsoft per le applicazioni gestite, definire una coppia nome/valore di tratto utilizzando TestPropertyAttribute.Il framework di unit test Microsoft contiene anche questi tratti predefiniti:
Tratto |
Descrizione |
---|---|
[ T:Microsoft.VisualStudio.TestTools.UnitTesting.OwnerAttribute ] |
La categoria del proprietario è definita dal framework di unit test ed è necessario specificare un valore stringa proprietario. |
[ T:Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute ] |
La categoria di priorità è definita dal framework di unit test ed è necessario specificare un valore Integer di priorità. |
[ T:Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryAttribute ] |
L'attributo di TestCategory consente di fornire una categoria senza un valore.Una categoria definita dall'attributo di TestCategory può essere la categoria di attributo di TestProperty. |
[ T:Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute ] |
L'attributo di TestProperty consente di definire la categoria coppia di valori tratto. |
Considerare il Framework per unit test Microsoft per C++
Per definire un tratto, utilizzare la macro di TEST_METHOD_ATTRIBUTE.Ad esempio, 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 di 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. |
Contenuto della sezione
Individuare e filtrare l'elenco di test
È possibile utilizzare filtri di navigazione dal test per limitare i metodi di test nei progetti visualizzate ed eseguito.
Quando si digita una stringa nella casella di ricerca di navigazione del test e aver premuto INVIO, l'elenco di test viene filtrato per visualizzare solo i test di cui nomi completi contengono la stringa.
Per filtrare dai diversi criteri:
Aprire l'elenco a discesa a destra della casella di ricerca.
Scegliere i nuovi criteri.
Immettere il valore del filtro tra virgolette.
[!NOTA]
Le ricerche non viene fatta distinzione tra maiuscole e minuscole e corrispondono alla stringa specificata a parte dei criteri di valore.
Qualificatore |
Descrizione |
---|---|
Tratto |
Cercherà la categoria che il valore di tratto le corrispondenze.La sintassi per specificare categorie di tratto e i valori sono definiti dal framework unit test. |
Progetto |
Cerca i nomi di progetto di test le corrispondenze. |
Messaggio di errore |
Cerca i messaggi di errore definiti dall'utente restituiti dalle asserzioni non soddisfatte le corrispondenze. |
Percorso del file |
Cerca il nome file completo dei file di origine del test le corrispondenze. |
Nome completo |
Cerca il nome file completo degli spazi dei nomi, classi e metodi di test le corrispondenze. |
Output |
Cerca i messaggi di errore definiti dall'utente vengono scritti nell'output standard (stdout) oerrore standard (stderr).La sintassi per specificare i messaggi in uscita viene definita dal framework unit test. |
Risultato |
Cerca i nomi di categoria di navigazione del test corrispondenze: Test non riusciti, Test ignorati, Test superati. |
Contenuto della sezione
Unit test di debug
È 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:
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.
In Esplora test, selezionare i metodi di test e quindi scegliere Esegui debug test selezionati dal menu di scelta rapida.
Per ulteriori informazioni riguardo al debugger, vedere Debug in Visual Studio.
Contenuto della sezione
Analisi del 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:
Scegliere Test dal menu di Visual Studio e quindi scegliere Analizza code coverage.
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.
Contenuto della sezione
Diagnosi dei problemi di prestazioni del metodo di test
Per diagnosticare perché un metodo di test sta richiedendo troppo tempo, selezionare il metodo di test Esplora Soluzioni e quindi scegliere Profilo il menu di scelta rapida.Vedere Analisi delle prestazioni dell'applicazione tramite gli strumenti di profilatura
Contenuto della sezione