Jul 042014
 

Seit längerer Zeit kann man die Testabdeckung im Build Prozess sehr einfach einschalten. Dazu kann man in der Build Definition „Type of run settings“ auf CodeCoverageEnabled einstellen:


Leider bekomme ich mit der Option in TFS 2013 aktuell keine Code Coverage Results:


Erst wenn man die *.runsettings Datei mit ins Projekt aufnimmt und im Build Prozess angibt funktioniert die Ausgabe der Code Coverage wieder. Die *.runsettings Datei ist dabei eine Konfiguration für die Ausführung der Unit Tests. (In Visual Studio 2010 gab es dafür z.B. noch die testsettings). Im Projekt kann man eine Xml Datei anlegen, diese in *.runsettings umbenennen den Inhalt aus der MSDN Dokumentation rein kopieren.

Siehe: http://msdn.microsoft.com/en-us/library/jj635153.aspx

Nebenbei können wir in der Datei auch gleich festlegen dass z.B. die UnitTest dll’s selbst von der Analyse ausgeschlossen werden:


In der Build Definition muss dann „Type of run settings“ auf UserSpecified stehen und der Verweis zum „Run Settings file“ muss angegeben werden:


Dann passt auch die Ausführung wieder.


Falls man immer noch keine Ergebnisse sieht liegt es wahrscheinlich daran, das auf dem Build Server kein Visual Studio Premium / Ultimate installiert ist. Falls man die Solution auf dem Build Server öffnet sollte man dort auch entsprechende Code Coverage Results bekommen.

Ergänzung 22.09.2014: Unter VS 2013.3 und TFS 2013.3 ist mir noch folgender Bug aufgefallen:

Wenn man den „Type of run settings“ direkt in den Einstellungen auf UserSpecified stellt kann es sein das die Einstellung nicht beachtet wird. Geht man hingegen über den Button in den extra Dialog und stellt die Options dort auf „Custom“ wird die Einstellung übernommen und Code Coverage funktioniert. Siehe Screenshots:



Auf Stackoverflow gibt es dazu auch einen entsprechenden Eintrag: http://stackoverflow.com/questions/24016217/tfs-2013-no-code-coverage-results