dotCover ist ein .NET Unit-Test- und Code-Coverage-Tool, das direkt aus Visual Studio und JetBrains Rider heraus funktioniert. Dieses Tool zeigt Ihnen, ob Ihr gesamter Code von Unit-Tests abgedeckt ist bietet großartige Methoden zur Visualisierung von Code-Coverage und kann bei kontinuierlicher Integration eingesetzt werden. dotCover berechnet und meldet die Code-Coverage auf Anweisungsebene in Anwendungen für .NET Framework, .NET Core, Mono und Mono for Unity.
dotCover ist ein Plugin für Visual Studio und JetBrains Rider. Damit können Sie Code-Coverage analysieren und darstellen, ohne den Code-Editor verlassen zu müssen. Das Tool ermöglicht die Ausführung von Unit-Tests und die Analyse von Coverage-Ergebnissen direkt in der IDE und unterstützt drüber hinaus verschiedene Farbschemata sowie neue Symbole und Menüs.
dotCover unterstützt Visual Studio 2010 bis 2019 sowie JetBrains Rider 2018.2 und höher.
In Visual Studio oder JetBrains Rider integriert unterstützt dotCover unter Windows Projekte, die eine beliebige unterstützte Version von .NET Framework, .NET Core, .NET, Mono 5.10+ oder Unity 2018.3+ verwenden. Unter macOS und Linux kann dotCover nur als Teil von JetBrains Rider verwendet werden.
dotCover bringt einen Unit-Test-Runner mit, der auch in ReSharper, einem weiteren JetBrains-Tool für .NET-Entwickler, verwendet wird.
Der Runner arbeitet unter Visual Studio/JetBrains Rider, ermöglicht die Verwaltung von Unit-Tests mittels Sitzungen und unterstützt zahlreiche Unit-Test-Frameworks wie MSTest, NUnit, xUnit (alle sofort einsatzbereit) und MSpec (mittels Plugin).
dotCover unterstützt fortlaufende Tests – einen modernen Workflow für Unit-Tests, bei dem dotCover in Echtzeit ermittelt, welche Unit-Tests von Ihren aktuellsten Code-Änderungen betroffen sind, und die betroffenen Tests für Sie automatisch erneut ausführt.
Je nach Ihren Einstellungen kann dotCover betroffene Tests beim Speichern einer Datei, beim Erstellen der Projektmappe oder auf Befehl ausführen.
Der Modus für fortlaufende Tests kann für eine beliebige Unit-Test-Sitzung aktiviert werden: somit können Sie wählen, welche Tests Sie fortlaufend ausführen möchten und welche auf traditionelle Weise ausgeführt werden sollen.
Ein wichtiger Anwendungsfall von dotCover ist die Analyse der Unit-Test-Coverage. Dabei wird ermittelt, welche Teile der Anwendungslogik durch Unit-Tests abgedeckt sind und welche nicht.
Zusammen mit den Ergebnissen des Unit-Test-Runners zeigt dotCover eine Coverage-Struktur, die darstellt, in welchem Umfang ein bestimmtes Projekt, ein Namespace, Typ oder Typmember von Unit-Tests abgedeckt ist.
Zur Visualisierung der Coverage-Daten kann dotCover Codezeilen direkt im Code-Editor hervorheben. Es besteht auch die Möglichkeit, bei der Hervorhebung zwischen Markierung und farbigem Hintergrund umzuschalten oder beides anzuzeigen.
Beachten Sie, dass die Hervorhebung nicht nur abgedeckten und nicht abgedeckten Code anzeigt, sondern auch die Ergebnisse der abdeckenden Unit-Tests. Grün bedeutet, dass die Tests erfolgreich waren; Rot bedeutet, dass mindestens ein Test, der die Anweisung abdeckt, fehlgeschlagen ist. Nicht abgedeckter Code wird grau dargestellt.
dotCover bietet einen Befehl (und ein Tastenkürzel), um zu ermitteln, welche Tests eine bestimmte Codestelle abdecken, egal ob es sich dabei um eine Klasse, eine Methode oder eine Eigenschaft handelt.
Sie können diesen Befehl über den Texteditor von Visual Studio oder die Coverage-Struktur von dotCover aufrufen.
Zudem können Sie über ein Pop-up zu einem beliebigen der aufgelisteten Tests navigieren und diesen sofort ausführen oder einer bestehenden Unit-Test-Sitzung hinzufügen.
Die Hotspot-Ansicht unterstützt Sie dabei, die risikoreichsten Methoden in Ihrer Projektmappe zu identifizieren. Hotspots werden unter Berücksichtigung einer hohen zyklomatischen Komplexität und einer niedrigen Unit-Test-Coverage von Methoden berechnet.
Manchmal benötigen Sie nicht die Coverage-Daten der gesamten Projektmappe. So möchten Sie z. B. die
Coverage-Statistik für Code ignorieren, der als
ObsoleteAttribute
gekennzeichnet ist oder zu einem bestimmten Legacy-Projekt gehört.
In diesem Fall können Sie globale Coverage-Filter oder für die Projektmappe spezifische Filter einrichten, die auf einem Projekt, Namespace, Typ oder Namen eines Typmembers basieren. Es stehen auch Attribut-Filter zur Verfügung, die die Sammlung von Coverage-Informationen auf Code begrenzen, der bestimmte Attribute aufweist (oder nicht aufweist).
Alternativ zu den Filtern, die Sie im Voraus einrichten oder auf alle Projektmappen anwenden, die Sie öffnen, können Sie Elemente auch aus den Coverage-Ergebnissen ausschließen, während Sie an diesen arbeiten.
Wenn Sie bereits Coverage-Daten gesammelt haben, können Sie einen bestimmten Knoten aus der Coverage-Struktur ausschließen (und optional einen permanenten Coverage-Filter erstellen). Sobald Sie das tun, berechnet dotCover die Coverage-Statistik sofort neu.
dotCover ermöglicht die Verarbeitung von Coverage-Daten auf die von Ihnen gewünschte Weise.
Export-Optionen in verschiedene Formate (einschließlich HTML, XML, JSON und XML für NDepend) ermöglichen Ihnen, Coverage-Berichte mit dem restlichen Team zu teilen oder Informationen zur Coverage an externe Dienstleister weiterzugeben.
Alternativ zur Unit-Test-Coverage kann dotCover auch Coverage-Analysen für .NET-Anwendungen vornehmen, die über Visual Studio ausgeführt wurden.
Dies ermöglicht QA-Ingenieuren, ein Beispielszenario auszuführen und zu prüfen, welche Teile des Codes während dieses Anwendungsbeispiels tatsächlich ausgeführt wurden. Die Option, Coverage-Snapshots zu speichern und zusammenzuführen, ermöglicht die Ausführung nicht-trivialer Testfälle.
dotCover ist die ideale Lösung für Server für kontinuierliche Integration. Dies gilt besonders für das Produkt TeamCity von JetBrains.
Einerseits kann dotCover mittels TeamCity-Plugin für Visual Studio Coverage-Daten von einem TeamCity-Server beziehen, ohne die Coverage-Analyse auf einem lokalen Gerät auszuführen.
Andererseits ist die Coverage-Analyse-Engine von dotCover in einer kostenlosen Version von TeamCity enthalten. Dies ermöglicht die Verknüpfung der Ausführung von Coverage-Analysen mit dem Prozess der kontinuierlichen Integration sowie die Generierung von serverseitigen Coverage-Berichten. TeamCity kann die Ausgabe des Console Runners von dotCover erfassen und hebt dessen Fehler und Warnungen im Build-Protokoll hervor.
Kostenlose 30-Tage-Testversion verfügbar