Tool:Open Cover

Open Cover ist ein Tool zum Ermitteln der Code Coverage von .Net-Anwendungen. In Verbindung mit dem ReportGenerator ergibt sich so eine gute Übersicht, welche Teile des Codes verwendet werden und welche noch nicht abgedeckt sind.

Dies ist besonders hilfreich im Zusammenspiel mit Unittests, die mit Hilfe von NUnit erstellt wurden. So kann man immer sicher sein, bei den Tests auch nichts vergessen zu haben.

OpenCover kann auf der github-Seite heruntergeladen werden unter https://github.com/OpenCover/opencover.

Der ReportGenerator ist erhältlich unter http://www.palmmedia.de/Net/ReportGenerator.

 

Aufruf von OpenCover und ReportGenerator

Nach der Installation bietet es sich an, eine Batch-Datei zu erstellen, mit dessen Hilfe für die zu überwachenden Assemblies die NUnit-Tests aufgerufen werden.

Hier ein Beispiel, wie das Ganze aussehen kann:

In diesem Beispiel wird zunächst der NUnit Console Runner verwendet um die Tests mit OpenCover laufen zu lassen. Anschließend wird der Report erstellt und im Standard-Browser geöffnet.

OpenCover

Zunächst wird mit OpenCover eine Assembly.exe, welche die NUnit-Tests enthält mit Hilfe des NUnit Console Runners gestartet. Dieser führt die Tests aus.  Im Folgenden wird dann ein Filter definiert, der zunächst alle Klassen in allen Modulen einschließt (+[*]*) und anschließend gezielt wieder bestimmte Klassen ausschließt, etwa die Klasse Program, da diese in einem NUnit-Console-Runner-Projekt nur NUnit startet und mit dem eigentlichen Ziel des Tests nichts zu tun hat.

Die Syntax des Filters ist folgendermaßen aufgebaut:

Zuletzt wird dann noch angegeben, wo OpenCover die XML-Datei ablegen soll, die das Ergebnis enthält.

 

ReportGenerator

Nach dem Lauf von OpenCover kann das Ergebnis nun mit Hilfe des ReportGenerators aufbereitet werden. Dazu wird das Ergebnis von OpenCover als Parameter übergeben. Zum Schluss noch der Ordner, in dem der Report erstellt werden soll.
Es ist möglich, mehrere OpenCover-Ergebnisse in einem Report zu verarbeiten. Dazu müssen die Ergebnisdateien mit einem Semikolon (;) voneinander getrennt werden.

Beispiel:

 

Anzeigen des Reports

Wenn man möchte, kann man sich zum Schluss das Ergebnis gleich anzeigen lassen. Dazu ruft man aus dem Ausgabeordner, der beim ReportGenerator angegeben wurde einfach die index.htm mit Hilfe des Batch-Befehls „start“ auf.

 

Aufrufen aus dem Visual Studio heraus

Mit dem gleichen Trick, wie wir auch Doxygen in VS eingerichtet haben, schaffen wir es auch, OpenCover aus dem Visual Studio heraus für jedes beliebige Projekt aufzurufen. Dafür muss nur für jedes Projekt eine Batch-Datei wie oben beschrieben angelegt werden.

Diese Speichert man dann unter dem Namen der Solution-Datei mit dem Anhang „.OpenCover.bat“  und schon kann man sie in den externen Tools mit folgenden Parametern angeben:

Beispiel:
Das Projekt heißt „HelloWorld“ und die Solution-Datei heißt „HelloWorld.sln“. Nun speichern wir die Batch-Datei unter dem Namen „HelloWorld.sln.OpenCover.bat“ und der oben beschriebene Aufruf funktioniert. Die Batch-Datei muss dafür im gleichen Ordner liegen, wie die Solution-Datei.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.