Unser Kollege Scott Hanselman untersucht weiterhin Tests und Codeabdeckung in .NET Core. Es ist ihm bereits gelungen, über einige Tools zur Verbesserung der
Testqualität zu sprechen, und heute spricht er über eine weitere
Sache :
AltCover . Schau unter die Katze!
Ich übergebe das Wort an Scott Hanselman .
Anfang dieser Woche habe ich die Bettdecke überprüft. Es gibt auch ein angesehenes OpenCover- Tool und einige interessante Projekte , die versuchen, OpenCover für .NET Core zum Laufen zu bringen, jedoch nur unter Windows.
Heute werde ich AltCover Steve Gilham studieren. Es gibt Tools zur Erkennung der Abdeckung, die zur Laufzeit die .NET Profiling-API verwenden. AltCover verweist hierfür dagegen auf IL .
Wie der Name schon sagt, ist dies ein alternativer Ansatz zur Abdeckung. Anstatt zur Laufzeit die .NET-Profiling-API zu bearbeiten, fügt sie dem, was wir erstellen möchten, noch vor der Ausführung dieselbe zusätzliche IL hinzu. Dies bedeutet, dass es fast überall auf jeder Plattform funktionieren sollte, solange der Ausführungsprozess Zugriff auf die Änderung der Ergebnisdatei hat. Sie können die verschiedenen für die Instrumentierung verwendeten und die getesteten Plattformen kombinieren.
AltCover ist nicht nur Teil des NuGet-Pakets, sondern auch als Teil des .NET Core Global Tool verfügbar, das einfach großartig ist.
dotnet tool install --global altcover.global
Auf diese Weise können Sie den Befehl altcover überall verwenden, ohne ihn dem Projekt hinzuzufügen.
Trotzdem werde ich
die AltCover-Kurzanleitung durchgehen und sehen, wie schnell ich das schaffen kann!
Ich werde es in meinem Testprojekt hanselminutes.core.tests installieren,
dotnet add package AltCover
und dann starte ich es.
dotnet test /p:AltCover=true
Großartig. Meine Tests laufen wie gewohnt, aber jetzt habe ich die Datei test.xml im Testordner. Auf Wunsch kann ich auch LCov- oder Cobertura-Berichte erstellen. Die Coverage.xml-Datei wiegt bereits fast ein halbes Megabyte! Es enthält viele nützliche Informationen, aber wie kann ich die Ergebnisse in lesbarer Form anzeigen?

Die Datei ist im OpenCover-XML-Format, sodass ich
ReportGenerator für die Coverage-Datei
ausführen und eine ganze Reihe von HTML-Dateien
abrufen kann. In der Tat eine ganze Mini-Coverage-Site!
Ich habe ReportGenerator heruntergeladen und in einem separaten Ordner abgelegt (dies ist die beste Lösung für das .NET Core Global Tool).
c:\ReportGenerator\ReportGenerator.exe -reports:coverage.xml -targetdir:./coverage
Stellen Sie sicher, dass Sie gutes targetDir verwenden, da sonst Dutzende unnötiger HTML-Dateien im Projektordner angezeigt werden. Es lohnt sich auch, .gitignoring für den resultierenden Ordner und die Coverage-Datei einzurichten. Öffnen Sie index.htm und bewerten Sie all diese nützlichen Informationen!

Schauen Sie sich die Risiko-Hotspots oben an! Ich habe einen CustomPageHandler mit erheblicher
NPath-Komplexität und zwei Ansichten mit erheblicher
zyklomatischer Komplexität .
Bewerten Sie auch die hervorragende Streckenabdeckung, wie hier in den Ergebnissen des Abdeckungsberichts angegeben. Möglicherweise stellen Sie fest, dass EnableAutoLinks immer wahr war, daher habe ich nur einen Weg überprüft. Vielleicht werde ich hier einen negativen Test durchführen und prüfen, ob es Nebenwirkungen gibt, wenn EnableAutoLinks falsch ist.
Lesen Sie das vollständige AltCover-Tutorial . Es gibt viele Möglichkeiten, dieses Tool auszuführen, von globalen Tools über globale Tools, Dotnet-Tests, MSBuild-Aufgaben bis hin zur Integration in PowerShell!
- Beispiele für die Verwendung finden Sie hier .
- Klicken Sie hier, um die Betriebsarten anzuzeigen.
- Um AltCover über den Dotnet-Test auszuführen, wechseln Sie zur Dotnet-Testintegration.
- Klicken Sie hier , um AltCover von MSBuild aus auszuführen.
- Klicken Sie hier, um AltCover und die zugehörigen Windows PowerShell- oder PowerShell Core-Tools zu starten.
Es gibt hier so viele gute Beispiele, und ich habe buchstäblich 10 Minuten gebraucht, um einen hervorragenden Bericht über die Berichterstattung mit AltCover und .NET Core zu erhalten. Vielen Dank an Steve von AltCover! Besuchen Sie
github.com/SteveGilham/altcover , um ihm ein Sternchen zu geben,
Dateiprobleme zu melden oder Hilfe anzubieten! Und vor allem teilen Sie solche Open Source-Projekte mit Freunden und Kollegen.