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

  3 Responses to “TFS 2013 keine Code Coverage Results im Build Prozess”

  1. Great post – looks like that solved my problem I was having with 2013 Coverage not working.

    Danke/Thanks!

  2. Super, Danke das Problem hatte ich auch
    ist jetzt mit dieser wertvollen Info gelöst.
    Gibt es dafür einen Bugeintrag bei Microsoft ? Wo wäre der zu finden ?
    Michael Breuer

    • Ich habe keinen Bugeintrag bei Microsoft geschrieben. Ich denke das Problem liest man öfter auch in den MS Foren und sollte eigentlich bekannt sein. Wenn jemand den Bug gemeldet hat sollte der hier zu finden sein: https://connect.microsoft.com/ Ansonsten habe ich das ganze in VS 2015 und TFS 2015 nochmal getestet. Der Bug existiert immer noch. Im neuen Buildsystem (Build vNext) in TFS 2015 passt alles.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)