Condividi tramite


Procedura: ottenere dati di code coverage

Aggiornamento: novembre 2007

È possibile valutare l'efficacia dei test riga per riga o blocco per blocco. A tale scopo, configurare le esecuzioni dei test in modo da produrre dati di code coverage. I dati risultanti verranno visualizzati nella finestra Risultati code coverage e nei file del codice sorgente.

I dati di code coverage vengono raccolti dopo che gli elementi, di solito file binari, sono stati instrumentati e, durante un'esecuzione di test, vengono caricati in memoria. Nella procedura Come ottenere dati di code coverage viene descritto come selezionare un file per la strumentazione.

Nota:

Per impostazione predefinita, il code coverage viene misurato quando vengono eseguiti gli unit test. Quindi, quando si eseguono gli unit test, è necessario completare la procedura Come ottenere dati di code coverage solo se il code coverage è stato disattivato oppure se si desidera instrumentare gli elementi aggiuntivi per i quali raccogliere dati di code coverage.

Al termine dell'esecuzione del test, è possibile visualizzare i dati di code coverage. Per ulteriori informazioni, vedere Visualizzazione di dati di code coverage.

È anche possibile unire più insiemi di dati di code coverage, come descritto in Procedura: unire dati di code coverage. Per informazioni sulle varie circostanze relative all'unione di dati di code coverage, vedere Utilizzo di dati di code coverage uniti.

Come descritto in Strumentazione e ripetizione della firma di assembly, gli assembly con nome sicuro che sono stati instrumentati devono essere firmati di nuovo. Per attivare la ripetizione della firma, è necessario specificare un file di chiave. Per ulteriori informazioni, vedere Ripetizione della firma degli assembly.

È necessario instrumentare in modo esplicito gli elementi per ottenere dati di code coverage quando si eseguono test diversi dagli unit test. Ad esempio, un tester che esegue un test manuale può avviare un determinato programma. Se i file binari del programma vengono instrumentati, i dati del code coverage saranno raccolti. Per ulteriori informazioni, vedere Cenni preliminari sui test manuali.

Come ottenere dati di code coverage

Per ottenere dati di code coverage

  1. Creare i test per il codice. Può trattarsi di unit test o di test di altri tipi che utilizzano il codice per il quale si dispone di simboli e sono stati selezionati i file binari appropriati da instrumentare.

    Per informazioni sulla creazione di unit test, vedere Procedura: generare unit test.

  2. Aprire la configurazione di esecuzione dei test che sarà utilizzata per gli unit test.

    Per ulteriori informazioni, vedere la classe Procedura: specificare la configurazione di esecuzione di un test.

  3. Fare clic su Code coverage.

  4. In Selezionare gli elementi da instrumentare, selezionare la DLL, il file eseguibile o la directory della soluzione. Ad esempio, se la soluzione è denominata ClassLibrary1, selezionare la casella di controllo relativa all'assembly denominato ClassLibrary1.dll il cui percorso è <Directory soluzione>\ClassLibrary1\bin\Debug.

    Nota:

    È anche possibile selezionare la DLL che contiene i file del progetto di test. Verranno generati i dati di code coverage per i metodi nel progetto di test, non solo per i metodi del codice di produzione.

  5. Scegliere Applica e quindi Chiudi.

  6. Eseguire uno o più test.

    Per ulteriori informazioni, vedere Procedura: eseguire test selezionati.

    Durante l'esecuzione dei test, verranno raccolti dati di code coverage. Per informazioni sulla relativa visualizzazione, vedere Visualizzazione di dati di code coverage.

    Nota:

    L'esecuzione di VSPerfMon.exe può interagire con la raccolta di dati di code coverage. Per ulteriori informazioni, vedere la sezione "Dati di code coverage e VSPerfMon.exe" in Risoluzione dei problemi relativi a Test Edition.

    I dati di code coverage non possono essere raccolti per un'applicazione eseguita in un processo a 64 bit. Pertanto, quando si richiedono dati di code coverage durante il test di una tale applicazione, il modulo di test imposta il flag "32BIT" nell'intestazione Portable Executable (PE) dell'assembly da instrumentare. Dopo l'esecuzione dei test, viene ripristinato lo stato originale dell'assembly.

Ripetizione della firma degli assembly

Per ripetere la firma degli assembly

  1. Aprire la configurazione di esecuzione dei test che sarà utilizzata per gli unit test.

    Per ulteriori informazioni, vedere la classe Procedura: specificare la configurazione di esecuzione di un test.

  2. Fare clic su Code coverage.

  3. Fare clic sui puntini di sospensione (...) accanto alla casella di testo Nuova firma per file di chiave.

    Verrà visualizzata la finestra di dialogo Scelta file di chiave.

  4. Selezionare un file di chiave, quindi scegliere Apri.

  5. Nell'editor di configurazione di esecuzione dei test fare clic su Applica e quindi su Chiudi.

    Se si stanno testando più assembly firmati, Visual Studio tenterà di ripetere la firma di tutti gli assembly con nome sicuro che erano stati firmati con il file di chiave specificato. Per ulteriori informazioni, vedere "Ripetere la firma dell'assembly" in Strumentazione e ripetizione della firma di assembly.

Visualizzazione di dati di code coverage

Prerequisito: sono stati eseguiti test che hanno prodotto dati di code coverage, come descritto in Come ottenere dati di code coverage.

Per visualizzare i dati di code coverage

  1. Nella barra degli strumenti Risultati test fare clic su Risultati code coverage. In alternativa, fare clic su Finestre dal menu Test e scegliere Risultati code coverage.

    Viene aperta la finestra Risultati code coverage.

  2. Nella finestra Risultati code coverage, nella colonna Gerarchia viene visualizzato un nodo contenente tutti i dati di code coverage ottenuti dall'ultima esecuzione dei test. Se si è verificato un errore, viene visualizzato un messaggio di errore in questa ubicazione anziché nel nodo radice. Se il nodo è visualizzato, espanderlo.

    Nota:

    Per impostazione predefinita, questo nodo di esecuzione dei test viene denominato utilizzando il formato <nome utente>@<nome computer> <data> <ora>. È possibile modificare lo schema di denominazione predefinito nella pagina Generale della finestra di dialogo Opzioni. Per ulteriori informazioni, vedere Procedura: specificare la configurazione di esecuzione di un test.

  3. Espandere il nodo dell'assembly, per lo spazio dei nomi, e per una classe nel codice di produzione.

    Le righe nella classe rappresentano i relativi metodi. Nelle colonne di questa tabella vengono visualizzate le statistiche di copertura per i singoli metodi, per le classi e per l'intero spazio dei nomi.

  4. Fare doppio clic sulla riga relativa a uno dei metodi della classe.

    Si aprirà il file del codice sorgente per il metodo scelto. In questo file, il codice è evidenziato. Scorrendo il file, è possibile visualizzare il code coverage per gli altri metodi in questo file. Per modificare i colori utilizzati per evidenziare le righe di codice, vedere Modifica della visualizzazione dei dati di code coverage.

    Nota:

    È possibile selezionare i pulsanti nella barra degli strumenti Strumenti di test per alternare la visualizzazione del code coverage nel file e per spostarsi tra le righe del codice contenuto nel file.

  5. (Facoltativo) Se è stata selezionata la casella di controllo relativa alla DLL del progetto del test, è possibile aprire il file del codice sorgente contenente gli unit test per individuare i metodi di test utilizzati.

Visualizzazione di calcoli di code coverage diversi

Per i calcoli di code coverage i totali vengono visualizzati sotto forma di colonne nella finestra Risultati code coverage. Per visualizzare i calcoli relativi al codice analizzato durante le esecuzioni dei test nonché al codice non analizzato, è possibile attivare fino a otto colonne. Nelle colonne è possibile attivare la visualizzazione dei calcoli sotto forma di percentuale o come totale numerico. È inoltre possibile attivare colonne in cui vengono visualizzati calcoli per righe di codice e per blocchi di codice.

Per visualizzare o nascondere una colonna di dati di code coverage

  1. Fare clic con il pulsante destro del mouse sui dati desiderati nella finestra Risultati code coverage.

  2. Fare clic su Aggiungi/Rimuovi colonne.

  3. Selezionare le caselle di controllo accanto agli elementi che si desidera visualizzare e deselezionare le caselle di controllo relative agli elementi da rimuovere.

  4. Scegliere OK.

Modifica della visualizzazione dell'evidenziazione di code coverage

Per impostazione predefinita, vengono utilizzati determinati colori per indicare se il codice è stato coperto dai test eseguiti. Le righe evidenziate in blu chiaro sono state utilizzate nell'esecuzione dei test e le righe evidenziate in rosso scuro non sono state utilizzate. Tra le righe evidenziate in marrone chiaro, solo una parte del codice è stata utilizzata.

Per cambiare la visualizzazione dei dati di code coverage

  1. Fare clic su Strumenti, quindi su Opzioni.

    Verrà visualizzata la finestra di dialogo Opzioni

  2. Espandere Ambiente.

  3. Fare clic su Tipi di carattere e colori.

  4. In Mostra impostazioni per, selezionare Editor di testo.

  5. In Visualizza elementi, selezionare l'area di code coverage i cui colori di visualizzazione si desidera cambiare. Le opzioni disponibili sono Area non interessata dal code coverage, Area parzialmente interessata dal code coverage e Area interessata dal code coverage.

  6. Cambiare le impostazioni per questa area del code coverage. È possibile cambiare i colori di sfondo e primo piano, il tipo di carattere, le dimensioni del carattere e il grassetto del testo.

  7. (Facoltativo) Cambiare le impostazioni per altre aree del code coverage.

  8. Una volta completata l'aggiunta delle colonne, fare clic su OK.

Vedere anche

Attività

Procedura: eseguire test selezionati

Procedura: specificare la configurazione di esecuzione di un test

Procedura: applicare la configurazione di esecuzione di un test

Risoluzione dei problemi relativi a Test Edition

Concetti

Strumentazione e ripetizione della firma di assembly

Utilizzo di dati di code coverage uniti

Altre risorse

Procedura: generare unit test