Eseguire il code coverage dei test durante una build di TFS 2012

Una domanda abbastanza comune che viene spesso fatta è: Come abilito il code coverage durante una bulid di TFS 2012?

In realtà l’opzione di code coverage fa parte dei Run Settings dei test, che di base nella build sono configurati come “default”. Non esiste quindi un settaggio esplicito del tipo “analyze code coverage”, ma è sufficiente cambiare il setting per il test run scegliendo l’apposito “CodeCoverageEnabled” dalla drop down list.

image

Una volta terminata la build troverete quindi non solamente i risultati dei test, ma anche tutte le informazioni relative al Code Coverage.

image

Ora la successiva domanda è: se io volessi solamente conoscere il code coverage di alcuni assembly e non di tutti quelli della solution, come posso fare?

La risposta è anche in questo caso semplice, bisogna usare i file di settaggio per i test, in maniera analoga a quello che si faceva in VS 2010. La nota negativa è che purtroppo non esiste in Visual Studio un template che vi crea un file .runsettings vuoto da cui partire, per cui bisogna aggiungere in una cartella della solution un file XML con estensione .runsettings e copiarci dentro il contenuto. (Nei link a fine pagina è riportato il link alla pagina MSDN che contiene un sample con tutte le opzioni disponibili)

[sourcecode language='xml'  padlinenumbers='true']



  
    
      
        
          
            
            
              
                .*fabrikamfiber.web.dll$
              

            

            
            True
            True
            True
            False

          
        
      
    
  

[/sourcecode]

Le opzioni possibili sono molte, in questo caso si è interessati solamente al CodeCoverage e alla sezione ModulePaths che permette di specificare con una standard Regular Expression tutti i nomi degli assembly di cui si vuole calcolare il Code Coverage.

Una volta che avete questo file nella solution, per verificare che funzioni correttamente, potete impostarlo come setting attivo per i test run direttamente da Visual Studio.

image

A questo punto eseguendo tutti i test in locale si deve verificare che effettivamente il code coverage venga calcolato solamente per gli assembly specificati. Una volta che il file è ok lo si può specificare come runsetting per i test della build (chiaramente lo si deve posizionare nel source control).

image

In questo modo durante l’esecuzione della build, verrà usato il vostro file come impostazione per l’esecuzione dei test e quindi verrà calcolato il Code Coverage solamente degli assembly di cui siete interessati.

image

Link Utili: Customizing Code Coverage Analysis

Gian Maria.

2 Responses to Eseguire il code coverage dei test durante una build di TFS 2012

  1.  
  2.