Verfügt Visual Studio über Codeabdeckung für Komponententests?

82

Ich verwende die Visual Studio 2015 Community Edition und weiß, dass sie die Möglichkeit bietet, Komponententests zum Testen des Codes zu erstellen. Die Option zum Testen der Codeabdeckung wird jedoch nicht angezeigt. Daher möchte ich wissen, ob Visual Studio über diese Option verfügt diese Option oder wenn ich ein Plugin eines Drittanbieters verwenden muss.

Wenn ich eine Drittanbieterlösung verwenden muss, wäre das eine gute Option?

Álvaro García
quelle

Antworten:

79

Nur in Visual Studio 2015 Enterprise ist die Codeabdeckung integriert. Weitere Informationen finden Sie in der Funktionsmatrix .

Sie können die OpenCover.UI-Erweiterung zur Überprüfung der Codeabdeckung in Visual Studio verwenden. Es unterstützt MSTest, nUnit und xUnit.

Die neue Version kann heruntergeladen werden hier ( Release Notes ).

Toni Wenzel
quelle
Die neue Erweiterungsversion ist jetzt in der VS Gallery verfügbar. Visualstudiogallery.msdn.microsoft.com/…
Toni Wenzel
2
OpenCover UI scheint NUnit 3
Lennart
1
opencover.UI (das in VS integriert ist) hat einen sehr chaotischen Bericht (Ergebnisfenster), der einfach nicht zu verwenden ist. Gehen Sie direkt zu Opencover: allenconway.net/2015/06/…
Roman Pokrovskij
47

Wenn Sie Visual Studio 2017 verwenden und auf diese Frage stoßen, sollten Sie AxoCover in Betracht ziehen. Es ist eine kostenlose VS-Erweiterung, die OpenCover integriert, aber VS2017 unterstützt (es scheint sich auch in der aktiven Entwicklung zu befinden. +1).

VS-Erweiterungsseite

https://github.com/axodox/AxoTools

Gordon Bean
quelle
9
Es ist erwähnenswert, dass dies (derzeit) nur Desktop-Versionen von .NET unterstützt - dh .NET Core scheint zum Zeitpunkt des Schreibens nicht unterstützt zu werden.
Jay
6
12. Dezember 2017, immer noch keine Unterstützung für .NET Core / Xamarin
Tuan Tran
1
Jep. Kein .net-Kern. gerade realisiert, nachdem ich installiert habe. :( August 2018
JzInqXc9Dg
2
Ab März 2019 unterstützt AxoCover auch nur bis xUnit 2.2 (das bereits über zwei Jahre alt ist). Derzeit ist keine Unterstützung für xUnit 2.3 oder 2.4 geplant. Wenn Sie xUnit-Tests ausführen möchten, stören Sie sich nicht.
Sean Werkema
2
Es ist der Juni 2020 und die obigen Kommentare gelten leider immer noch.
О Г И І І О
34

ToniDie Antwort ist sehr nützlich, aber ich dachte, ein schneller Einstieg für Anfänger, um die Bewertung der Abdeckung zu testen (so wie ich).

Wie bereits erwähnt, bieten Visual Studio Professional und Community Editions keine integrierte Unterstützung für die Testabdeckung. Es kann jedoch ziemlich leicht erhalten werden. Ich werde eine schrittweise Konfiguration für die Verwendung mit NUnit-Tests in Visual Studion 2015 Professional schreiben.

  1. Installieren Sie die OpenCover NUGet-Komponente über die NuGet-Schnittstelle

  2. Holen Sie sich die OpenCoverUI-Erweiterung . Dies kann direkt in Visual Studio mithilfe von Extras -> Erweiterungen und Updates installiert werden

  3. Konfigurieren Sie OpenCoverUI für die Verwendung der entsprechenden ausführbaren Dateien, indem Sie auf Extras -> Optionen -> OpenCover.UI-Optionen -> Allgemein zugreifen

NUnit-Pfad: Muss auf die Datei `nunit-console.exe zeigen. Dies ist nur in der NUnit 2.xx-Version zu finden, die hier heruntergeladen werden kann .

OpenCover-Pfad : Dies sollte normalerweise auf das installierte Paket verweisen<solution path>\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe

  1. Installieren Sie das ReportGenerator NUGet-Paket

  2. Zugriff OpenCover Test Explorerüber das OpenCover-Menü. Versuchen Sie, von dort aus Tests zu entdecken. Wenn dies fehlschlägt, überprüfen Sie die Ausgabefenster auf weitere Details.

  3. Weitere Informationen finden Sie unter OpenCover-Ergebnisse (im OpenCover-Menü). Es werden Details wie Code Coverage in einer baumbasierten Ansicht ausgegeben. Sie können auch Code markieren, der abgedeckt ist oder nicht (kleines Symbol oben links).

HINWEIS: Wie bereits erwähnt, unterstützt OpenCoverUI nicht die neueste Hauptversion von NUnit (3.xx). Wenn jedoch in Tests nichts Spezielles für diese Version verwendet wird, funktioniert dies problemlos, unabhängig davon, ob die Version NUnit 3.xx installiert wurde.

Dies umfasst den Schnellstart. Wie bereits in den Kommentaren erwähnt, finden Sie in diesem Artikel weitere Informationen zur Konfiguration und Automatisierung .

Alexei
quelle
10
Die Erweiterung funktioniert nicht in der VS 2019-Community. Wie schade
nicolascolman
@nicolascolman Ja, aber Fine Code Coverage scheint zu funktionieren .
Alexei
1

Für alle, die nach einer einfachen Lösung in Visual Studio Community 2019 suchen, ist Fine Code Coverage einfach, funktioniert aber gut.

Es kann keine genauen Zahlen zur genauen Abdeckung angeben, es wird jedoch angezeigt, welche Linien mit grün / roten Dachrinnen abgedeckt werden.

Bas
quelle
Das ist ein guter Hinweis. Es funktioniert jedoch nur mit .NET Core.
Alexei