Laden Sie diese Erweiterung vom Visual Studio Market Place (vs 2019), Visual Studio Market Place (vs 2022) herunter oder laden Sie sie von Releases herunter. Ältere Versionen können hier bezogen werden.
Für .Net – dass die Testadapter Nuget-Pakete sind. Beispielsweise reicht die Erweiterung NUnit Test Adapter nicht aus.
Fine Code Coverage bietet Codeabdeckung mithilfe eines von drei verschiedenen Coverage-Tools. In früheren Versionen wurden zwei Coverage-Tools verwendet, OpenCover und Coverlet, die als „alte Coverage“ bezeichnet werden.
Microsoft stellt jetzt eine kostenlose Abdeckungslösung bereit, die Sie verwenden können, indem Sie die Visual Studio Fine Code Coverage-Enumerationsoption „RunMsCodeCoverage“ festlegen. Dies wird wahrscheinlich für die meisten Entwickler das bevorzugte Coverage-Tool sein. Es befindet sich derzeit in der Beta-Phase.
Mit der alten Abdeckung war es der FCC möglich, eine Abstraktion über die Ausschluss-/Einschlussoptionen jedes Tools bereitzustellen. Diese Abstraktion funktioniert nicht für die MS-Codeabdeckung.
Daher werden Sie feststellen, dass es separate Konfigurationsoptionen für die Ms-Abdeckung und die alte Abdeckung sowie Optionen gibt, die beiden gemeinsam sind. Ausschlüsse und Einschlüsse auf Baugruppenebene können erreicht werden – siehe ExcludeAssemblies und IncludeAssemblies. Die Konfiguration wird (größtenteils) anhand der Visual Studio-Optionen, der Dateien „finecodecoverage-settings.xml“ und der msbuild-Eigenschaften des Projekts bestimmt. Alle diese Einstellungen sind optional. Bei Optionen, die einen Projektumfang haben, bilden diese Einstellungen eine Hierarchie, in der niedrigere Ebenen Vorrang haben oder, bei Sammlungen, die darüber liegende Ebene überschreiben oder mit dieser zusammenführen. Dies wird weiter unten ausführlich beschrieben.
Unabhängig vom verwendeten Coverage-Tool beginnt der Prozess damit, dass FCC auf den Test-Explorer in Visual Studio reagiert. Eines der drei Coverage-Tools stellt die Coverage-Ergebnisse bereit und die Ergebnisse können über Schaltflächen im Fenster „Fine Code Coverage Tool“ geöffnet werden. Diese Abdeckung ist nicht dynamisch und stellt die Abdeckung dar, die Sie bei der letzten Testausführung erhalten haben. Wenn die Abdeckung veraltet ist, können Sie in den Tools auf die Schaltfläche „FCC Clear UI“ klicken oder die Abdeckung erneut ausführen.
Einzelheiten zum Fortschritt der FCC bei der Codeabdeckung finden Sie auf der Registerkarte „Abdeckungsprotokoll“ im Fenster „Fine Code Coverage Tool“. Detailliertere Protokolle finden Sie im Fensterbereich „FCC-Ausgabe“. Wenn Probleme auftreten, hilft die Bereitstellung der Protokolle aus dem Ausgabefenster dabei, die Art des Problems zu verstehen.
Präsentieren Sie einen einzigen einheitlichen Bericht im Fine Code Coverage Tool-Fenster. Der Bericht zeigt die Leitungs- und Zweigstellenabdeckung sowie Risiko-Hotspots an und bietet die Möglichkeit, Ihre Kursdateien zu öffnen.
Farbige Ränder zeigen den Abdeckungsstatus Ihres Codes an. Instrumentierte (eingeschlossene und analysierbare) Codezeilen werden entweder abgedeckt, nicht abgedeckt oder teilweise abgedeckt, was bedeutet, dass nicht alle Zweige ausgeführt wurden.
FCC bietet das Konzept schmutziger Regionen, in denen zuvor instrumentierter Code nicht mehr den Instrumentierungsstatus anzeigt, sobald Sie den Code geändert haben.
Für C# und Visual Basic finden Sie weitere Informationen zur Abdeckung:
Mit FCC können Sie auch Code anzeigen, der nicht in der Abdeckung enthalten war, sowie neue Zeilen, die seit dem letzten Abdeckungslauf hinzugefügt wurden.
Sowohl die Färbung schmutziger als auch neuer Linien muss in den Optionen aktiviert werden.
Bei Bedarf können Linien auch hervorgehoben werden, indem die verfügbaren Visual Studio-Optionen festgelegt werden. Lesen Sie weiter für weitere Details.
Die Farben können über Visual Studio / Extras / Optionen / Umgebung / Schriftarten und Farben / Texteditor / Anzeigeelemente gesteuert werden:
Für Visual Studio Community, Professional und Enterprise können Sie die Einstellungen verwenden
Abdeckung des berührten Bereichs FCC
Abdeckung teilweise berührter Bereich FCC
Abdeckung nicht berührter Bereich FCC
Abdeckung schmutziger Bereiche FCC
Abdeckung New Lines Area FCC
Abdeckung nicht im FCC-Bereich enthalten
Für Versionen, die die folgenden Elemente bereitstellen, verwendet FCC diese standardmäßig gegenüber den entsprechenden FCC-Elementen, sodass in Themen definierte Farben verwendet werden können. Wenn Sie für die 5 verfügbaren Elemente konsistent sein möchten, können Sie UseEnterpriseFontsAndColors auf „false“ setzen.
Abdeckung nicht berührter Bereich
Abdeckung teilweise berührter Bereich
Abdeckung berührter Bereich
Sie können die Editor-Farbgebung deaktivieren, indem Sie die Visual Studio-Option EditorCoverageColoringMode auf „Aus“ setzen. Sie können die Option auch auf „DoNotUseRoslynWhenTextChanges“ festlegen, wenn ein Leistungsproblem vorliegt. Dadurch wird die Färbung neuer Linien nicht so gut. Wenn Sie zu einer der EditorCoverageColoringMode-Optionen wechseln, müssen Sie die Abdeckung erneut ausführen.
Sie können die Editor-Farbgebung umschalten. FCC fügt im Menü „Extras“ eine Menüschaltfläche mit der Bezeichnung „Toggle Indicators“ hinzu. Sie können auch eine Tastenkombination erstellen – Extras/Optionen/Umgebung/Tastatur, Befehle anzeigen, die „ToggleIndicators“ enthalten.
Für Blazor-Komponenten mit @code-Blöcken können Abdeckungslinien außerhalb dieser Regionen generiert werden. Wenn der Roslyn-Syntaxbaum für FCC verfügbar ist, können Sie die Option BlazorCoverageLinesFromGeneratedSource auf true setzen, um Coverage-Zeilen in der .razor-Datei auf diejenigen in der generierten Quelle zu beschränken.
FCC verfolgt den Visual Studio-Editor und speichert diese Informationen, wenn eine Datei geschlossen wird. Wenn sich beim erneuten Öffnen einer Datei der Text außerhalb eines Dokumentfensters geändert hat, werden für diese Datei keine Abdeckungsmarkierungen angezeigt, da nicht mehr erwartet wird, dass die Abdeckungslinien korrekt sind.
Es gibt auch keine Editor-Markierungen, wenn Sie eine Datei bearbeiten, während die FCC die Berichterstattung einholt.
Mit der alten Abdeckung musste FCC Ihre Test-DLL und Abhängigkeiten kopieren und OpenCover oder Coverlet für diese Dateien ausführen. Dies ist bei MS-Code-Abdeckung nicht erforderlich. Die alte Abdeckung würde warten, bis die Tests abgeschlossen sind, bevor das Abdeckungstool gestartet wird, um alle Tests erneut auszuführen. Dies ist bei MS-Code-Abdeckung nicht erforderlich. Die alte Berichterstattung basierte auf jedem Test. Die MS-Codeabdeckung ist die Abdeckung durch die Tests, die Sie im Test-Explorer auswählen.
Unterstützt C++! Beachten Sie, dass FCC nicht ordnungsgemäß mit C++-Projekten getestet wurde, aber mit einer einfachen C++-Klasse, die mit Google Test getestet wurde, bietet FCC Abdeckung.
Zuerst müssen Sie die Option „RunMsCodeCoverage“ von „Nein“ ändern.
Für die MS-Codeabdeckung ist eine Runsettings-Datei erforderlich, die entsprechend für die Codeabdeckung konfiguriert ist. Dazu ist es erforderlich, dass Sie über das MS-Codeabdeckungspaket verfügen und mit dem TestAdaptersPaths-Element darauf verwiesen haben sowie den MS-Datenkollektor angeben. Ausschlüsse und Einschlüsse werden ebenfalls in den Laufeinstellungen festgelegt. Ich glaube nicht, dass die Dokumentation klar genug darüber ist, wie das funktioniert, also sollten Sie sich dieses Problem vielleicht ansehen.
Die FCC verlangt dies nicht von Ihnen. Wenn Sie keine Laufeinstellungen angeben und „RunMsCodeCoverage“ auf „Ja“ gesetzt ist, generiert FCC eine und schreibt den erforderlichen Eintrag in die Projektdatei.
Beachten Sie, dass das Öffnen einer Testprojektdatei in Visual Studio während der Ausführung von Tests zu einer Konfliktwarnung führen kann, wenn FCC den Eintrag am Ende des Tests entfernt. Wenn RunMsCodeCoverage IfInRunSettings ist und das Projekt über Runsettings verfügt, die das korrekt konfigurierte MS-Datenkollektorelement enthalten, verarbeitet FCC die gesammelten Ergebnisse.
FCC enthält das MS-Code-Coverage-Paket und erstellt die erforderliche Runsettings-Datei für jedes Testprojekt, das über das Test-Explorer-Fenster ausgeführt wird. Die Ausschlüsse und Einschlüsse werden aus den kombinierten Einstellungen stammen, ähnlich wie bei der alten Abdeckung. Da die MS-Codeabdeckung Regex verwendet und über andere Ausschluss-/Einschlussmethoden als Coverlet und OpenCover verfügt, gibt es MS-spezifische Visual Studio-Optionen und zugehörige Elemente.
Da FCC für jedes Testprojekt eine Runsettings-Datei bereitstellt (sofern Sie keine lösungsweite oder projektspezifische Datei bereitgestellt haben), muss das Element „RunSettingsFilePath“ in die Projektdatei geschrieben werden.
Obwohl FCC den Wert dieses Elements aus der Projektdatei löscht, ist er immer noch vorhanden.
FCC erstellt die Laufeinstellungen aus einer Vorlage mithilfe von String-Ersetzung. Auf Wunsch können Sie auch eigene Vorlagen bereitstellen. FCC sucht im Projektverzeichnis oder Lösungsverzeichnis nach fcc-ms-runsettings-template.xml. Ihre Vorlage muss ein gültiges XML-Dokument sein, muss aber nicht alle Elemente der Laufeinstellungen enthalten. FCC fügt die austauschbaren Elemente ResultsDirectory und TestAdaptersPaths (und ggf. das Container-RunConfiguration-Element) hinzu, falls diese nicht vorhanden sind. FCC fügt auch die austauschbaren Elemente ms DataCollector/Configuration/CodeCoverage hinzu, falls diese nicht vorhanden sind. Außerdem werden die empfohlenen CodeCoverage-Elemente „AllowLowIntegrityProcesses“, „CollectFromChildProcesses“, „CollectAspDotNet“ und „UseVerifiableInstrumentation“ ohne Ausschluss/Einschluss hinzugefügt, sofern diese nicht bereitgestellt werden. UseVerifiableInstrumentation ist für .Net Framework falsch. Um die generierten Laufeinstellungen anzuzeigen, verwenden Sie das RunSettingsFilePath-Element in der Projektdatei.
Für eine benutzerdefinierte Vorlage, die ihre eigenen Elemente bereitstellt, die andernfalls von FCC bereitgestellt worden wären, müssen Sie Zeichenfolgen vom Typ %fcc_replace% hinzufügen, um an der Vorlagenersetzung teilzunehmen.
Ausschlüsse und Einschlüsse folgen dem Format „%fcc_modulepaths_exclude%“. Damit FCC den von der FCC bereitgestellten MS-Codeabdeckungspfad für TestAdaptersPaths bereitstellen kann, verwenden Sie %fcc_testadapter%.
Es ist auch möglich, Ihre eigene Runsettings-Datei zu verwenden und sie von FCC ergänzen und ersetzen zu lassen. FCC stellt sicher, dass das TestAdaptersPaths-Element sowie der MS-Datenkollektor vorhanden sind. Anders als bei einer Vorlage wird, wenn der MS-Datenkollektor vorhanden ist, nur die XML-Ersetzung darauf angewendet.
Die MS-Codeabdeckung stellt ein Standardkonfigurations-/CodeCoverage-Element bereit, sofern dieses nicht bereitgestellt wird. Außerdem werden einige Standardausschlüsse hinzugefügt, falls diese nicht vorhanden sind, oder sie werden zusammengeführt, es sei denn, Sie fügen das Attribut mergeDefaults='false' hinzu. Zum Beispiel schließen Attribute ExcludeFromCodeCoverageAttribute aus. Wenn Sie interessiert sind, sehen Sie sich ...AppDataLocalFineCodeCoveragemsCodeCoverage_version_buildnetstandard1.0Microsoft.VisualStudio.TraceDataCollector.dll und den DynamicCoverageDataCollector an.
Bitte überprüfen Sie die Fehlerbehebung, bevor Sie ein Problem melden.
DLLs werden in einen Unterordner des Projektausgabeordners kopiert, was sich auf Ihre Tests auswirken kann. Die Alternative besteht darin, die Option AdjacentBuildOutput auf true zu setzen. Die Abdeckung wird entweder von OpenCover für Projekte im alten Stil und von Coverlet für SDK-Projekte im neuen Stil bereitgestellt. Obwohl FCC eine Abstraktion über beide bietet, sodass die Unterschiede zwischen den beiden ignoriert werden können, gibt es Umstände, unter denen es wichtig ist, das verwendete Cover-Tool zu kennen. Dies wird am deutlichsten, wenn Coverlet verwendet wird. Bitte lesen Sie weiter, um Einzelheiten zu erfahren.
Das andere Szenario wäre, wenn Sie eine bestimmte Version des Abdeckungstools verwenden möchten. Dies ist konfigurierbar.
Die von FCC genutzten Abdeckungstools werden standardmäßig im FineCodeCoverage-Verzeichnis in Environment.SpecialFolder.LocalApplicationData
installiert. Dies kann mit der Option ToolsDirectory Visual Studio geändert werden. Stellen Sie sicher, dass dieses Verzeichnis vorhanden ist und die Tools beim Neustart darin installiert werden.
Führen Sie einen oder mehrere Unit-Tests durch und ...
Die Hierarchie ist wie folgt:
a) Visual Studio-Optionen
b) Dateien „finecodecoverage-settings.xml“.
Diese finden Sie, indem Sie vom Projektverzeichnis aus durch die Verzeichnisstruktur gehen. Durch Anwenden des Attributs topLevel='true' auf das Wurzelelement wird der Spaziergang gestoppt.
Angesichts der Datei „finecodecoverage-settings.xml“ im Projektverzeichnis und der Datei „finecodecoverage-settings.xml“ im Lösungsverzeichnis lautet die Hierarchie:
Visual Studio-Optionen
Lösungsebene „finecodecoverage-settings.xml“.
Finecodecoverage-settings.xml auf Projektebene
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
c) msbuild-Projektdatei
Es gibt zwei Möglichkeiten, diese Einstellungen bereitzustellen. Direkt in der Projektdatei
<PropertyGroup Label="FineCodeCoverage">
<Enabled>
True
</Enabled>
<Exclude>
[ThirdParty.*]*
[FourthParty]*
</Exclude>
<Include>
[*]*
</Include>
<ExcludeByFile>
**/Migrations/*
**/Hacks/*.cs
</ExcludeByFile>
<ExcludeByAttribute>
MyCustomExcludeFromCodeCoverage
</ExcludeByAttribute>
<IncludeTestAssembly>
True
</IncludeTestAssembly>
<ModulePathsExclude>
.*Fabrikam.Math.UnitTest.dll
</ModulePathsExclude>
<!-- and more -->
</PropertyGroup>
Mit dem FineCodeCoverage-Element.
<PropertyGroup>
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
</PropertyGroup>
Dies ist erforderlich , wenn Sie Projekteinstellungen außerhalb Ihrer Projektdatei speichern und msbuild Import verwenden.
Dies ist auch erforderlich, wenn Sie möchten, dass das Einstellungselement mit dem der darüber liegenden Ebene zusammengeführt wird, da msbuild keine benutzerdefinierten Attribute unterstützt.
Standardmäßig wird jede Sammlungseigenschaft überschrieben. Dies kann für alle Einstellungen geändert werden, indem Sie defaultMerge='true' für das Root-Element festlegen.
Wenn Sie das Merge-Attribut für ein Einstellungselement angeben, wird es verwendet.
Dies ist nicht transitiv.
<PropertyGroup>
<FCCExcludeFromCodeCoverage/>
</PropertyGroup>
<PropertyGroup>
<UseDataCollector/>
</PropertyGroup>
Coverlet hat verschiedene „Treiber“. Fine Code Coverage hat in der Vergangenheit nur den Coverlet-Konsolentreiber verwendet. Damit sind einige Probleme verbunden. Wenn Sie eine Abdeckung von 0 % oder eine inkonsistente Abdeckung feststellen, ist es jetzt möglich, zum Data Collector-Treiber zu wechseln. Dies ist der bessere Treiber, kann aber nicht für alle Projekte verwendet werden. Im Moment ist dies optional. In Zukunft wird Fine Code Coverage den geeigneten Treiber bestimmen. Informationen zur Versionsunterstützung finden Sie in den Coverlet-Dokumenten.
Beachten Sie, dass es nicht erforderlich ist, das Paket „nuget coverlet.collector“ hinzuzufügen, da FCC es intern bereitstellt.
Fine Code Coverage verwendet den Data Collector-Treiber unter zwei Umständen:
Die Coverlet Data Collector-Einstellungen finden Sie hier. Wenn Sie Option 2) oben verwenden, werden allgemeine Einstellungen (Ausschlüsse und Einschlüsse) aus Projekteigenschaften (oben) und globalen Visual Studio-Optionen (siehe unten) generiert, wobei die Projekteigenschaften Vorrang haben. Wenn Sie Option 1) verwenden, werden Projekt- und globale Optionen nur verwendet, wenn ein Konfigurationselement für allgemeine Einstellungen fehlt und die Option „RunSettingsOnly“ (siehe unten) in „false“ geändert wurde.
Option | Beschreibung |
---|---|
Gemeinsam | |
EditorCoverageColoringMode | Legen Sie diese Option auf „Aus“ oder auf „DoNotUseRoslynWhenTextChanges“ fest, wenn ein Leistungsproblem vorliegt |
BlazorCoverageLinesFromGeneratedSource | Auf „true“ setzen, um die Abdeckungslinien in der .razor-Datei auf die in der generierten Quelle zu beschränken (sofern verfügbar). |
ShowEditorCoverage | Auf „false“ setzen, um alle Indikatoren für die Editorabdeckung zu deaktivieren |
ShowCoverageInGlyphMargin | Auf „false“ setzen, um Abdeckungsmarkierungen am Glyphenrand zu verhindern |
ShowCoveredInGlyphMargin | Auf „false“ setzen, um verdeckte Markierungen am Glyphenrand zu verhindern |
ShowUncoveredInGlyphMargin | Auf „false“ setzen, um unbedeckte Markierungen am Glyphenrand zu verhindern |
ShowPartiallyCoveredInGlyphMargin | Auf „false“ setzen, um teilweise verdeckte Markierungen im Glyphenrand zu verhindern |
ShowDirtyInGlyphMargin | Auf „true“ setzen, um schmutzige Markierungen am Glyphenrand anzuzeigen |
ShowNewInGlyphMargin | Auf „true“ setzen, um neue Linienmarkierungen am Glyphenrand anzuzeigen |
ShowCoverageInOverviewMargin | Auf „false“ setzen, um Abdeckungsmarkierungen im Übersichtsrand zu verhindern |
ShowCoveredInOverviewMargin | Auf „false“ setzen, um verdeckte Markierungen im Übersichtsrand zu verhindern |
ShowUncoveredInOverviewMargin | Auf „false“ setzen, um unbedeckte Markierungen im Übersichtsrand zu verhindern |
ShowPartiallyCoveredInOverviewMargin | Auf „false“ setzen, um teilweise verdeckte Markierungen im Übersichtsrand zu verhindern |
ShowDirtyInOverviewMargin | Auf „true“ setzen, um schmutzige Markierungen im Übersichtsrand anzuzeigen |
ShowNewInOverviewMargin | Auf „true“ setzen, um neue Linienmarkierungen im Übersichtsrand anzuzeigen |
ShowLineCoverageHighlighting | Auf „true“ setzen, um die Hervorhebung der Abdeckungslinie zu ermöglichen |
ShowLineCoveredHighlighting | Auf „false“ setzen, um die Hervorhebung verdeckter Linien zu verhindern |
ShowLineUncoveredHighlighting | Auf „false“ setzen, um die Hervorhebung nicht abgedeckter Zeilen zu verhindern |
ShowLinePartiallyCoveredHighlighting | Auf „false“ setzen, um die Hervorhebung teilweise abgedeckter Linien zu verhindern |
ShowLineDirtyHighlighting | Auf „true“ setzen, um die Hervorhebung schmutziger Linien anzuzeigen |
ShowLineNewHighlighting | Auf „true“ setzen, um die Hervorhebung neuer Zeilen anzuzeigen |
Verwenden Sie EnterpriseFontsAndColors | Auf „false“ setzen, um FCC-Schriftarten und -Farben-Elemente zu verwenden |
ShowToolWindowToolbar | Auf „false“ setzen, um die Symbolleiste im Toolfenster auszublenden. Erfordert einen Neustart von Visual Studio. Die Symbolleiste verfügt über Schaltflächen zum Anzeigen der Cobertura-XML und der Risiko-Hotspots. |
Name des Ausgabeverzeichnisses der FCC-Lösung | Um die fcc-Ausgabe in einem Unterordner Ihrer Lösung sichtbar zu machen, geben Sie diesen Namen an |
ToolsDirectory | Ordner, in den der Tools-Unterordner kopiert wird. Muss bereits vorhanden sein. Erfordert einen Neustart von VS. |
ThresholdForCyclomaticComplexity | Wenn die zyklomatische Komplexität diesen Wert für eine Methode überschreitet, wird die Methode auf der Registerkarte „Risiko-Hotspots“ angezeigt. |
StickyCoverageTable | Auf „true“ setzen, damit die Abdeckungstabelle einen klebrigen Kopf hat. |
NamespacedClasses | Auf „false“ setzen, um Typen im Bericht in Kurzform anzuzeigen. Beeinflusst die Gruppierung. |
NamespaceQualification | Steuern Sie die Qualifizierung von Typen im Bericht, wenn NamespacedClasses wahr ist. FullyQualified – immer voll qualifiziert. AlwaysUnqualified – immer unqualifiziert. UnqualifiedByNamespace – unqualifiziert bei Gruppierung nach Namespace. QualifiedByNamespaceLevel – lässt die ersten Gruppierungsebenen-Bezeichnerteile weg. Reduziert den Platzbedarf und bewahrt gleichzeitig die Einzigartigkeit. |
HideFullyCovered | Auf „true“ setzen, um Klassen, Namespaces und Assemblys auszublenden, die vollständig abgedeckt sind. |
Ausblenden0Abdeckung | Auf „true“ setzen, um Klassen, Namespaces und Assemblys auszublenden, die eine Abdeckung von 0 % haben. |
Verstecken0Abdeckbar | Auf „false“ setzen, um Klassen, Namespaces und Assemblys anzuzeigen, die nicht abgedeckt werden können. |
Ermöglicht | Gibt an, ob die Abdeckungsausgabe aktiviert ist oder nicht |
Deaktiviert, keine Abdeckung | Für VS Option Enabled=false auf „false“ setzen, um die Abdeckung nicht zu deaktivieren |
RunWhenTestsFail | Standardmäßig wird die Abdeckung ausgeführt, wenn Tests fehlschlagen. Auf „false“ setzen, um dies zu verhindern. Kann nicht in Verbindung mit RunInParallel verwendet werden |
RunWhenTestsExceed | Geben Sie einen Wert an, um die Abdeckung nur basierend auf der Anzahl der ausgeführten Tests auszuführen. Kann nicht in Verbindung mit RunInParallel verwendet werden |
Führen Sie MsCodeCoverage aus | Wechseln Sie zu IfInRunSettings, um nur mit konfigurierten Laufeinstellungen zu sammeln. Ja für die Generierung von Laufeinstellungen. |
IncludeTestAssembly | Gibt an, ob die Codeabdeckung der Testassembly gemeldet werden soll |
IncludeReferencedProjects | Auf „true“ setzen, um alle direkt referenzierten Projekte zu „Include“ hinzuzufügen. |
IncludeAssemblies | Stellen Sie eine Liste der Baugruppen bereit, die in die Abdeckung einbezogen werden sollen. Für den Abgleich wird der DLL-Name ohne Erweiterung verwendet. |
ExcludeAssemblies | Stellen Sie eine Liste der Baugruppen bereit, die von der Abdeckung ausgeschlossen werden sollen. Für den Abgleich wird der DLL-Name ohne Erweiterung verwendet. |
OpenCover / Coverlet | |
AdjacentBuildOutput | Wenn Ihre Tests von ihrem Pfad abhängig sind, setzen Sie dies auf „true“. |
Ausschließen | Filterausdrücke, um bestimmte Module und Typen auszuschließen (mehrere Werte) |
Enthalten | Filtern Sie Ausdrücke, um bestimmte Module und Typen einzuschließen (mehrere Werte). |
ExcludeByFile | OpenCover verwendet *-Platzhalter-Matching. Coverlet verwendet Dateisystem-Globbing |
ExcludeByAttribute | Schließen Sie attributierten Code auf Assembly-, Typ- und Methodenebene aus. Fügen Sie vollständig qualifizierte oder nicht qualifizierte Attributtypen hinzu. |
RunInParallel | Standardmäßig werden OpenCover-/Coverlet-Tests ausgeführt und anschließend die Abdeckung durchgeführt. Auf „true“ setzen, um die Abdeckung sofort auszuführen |
MS-Code-Abdeckung | Jedes der folgenden Elemente ist ein Array von regulären Ausdrücken, die in Runsettings-Elemente umgewandelt werden sollen, siehe |
ModulePathsExclude | Ausschließen – Entspricht den durch Assemblynamen oder Dateipfad angegebenen Assemblys. |
ModulePathsInclude | Einschließen – Entspricht den durch Assemblynamen oder Dateipfad angegebenen Assemblys. |
CompanyNamesExclude | Ausschließen – Gleicht Baugruppen anhand des Firmenattributs ab. |
CompanyNamesInclude | Einschließen – Gleicht Baugruppen anhand des Firmenattributs ab. |
PublicKeyTokens ausschließen | Ausschließen – Entspricht signierten Assemblys anhand des öffentlichen Schlüsseltokens. |
PublicKeyTokens einschließen | Einschließen – Entspricht signierten Assemblys anhand des öffentlichen Schlüsseltokens. |
QuellenAusschließen | Ausschließen – Gleicht Elemente anhand des Pfadnamens der Quelldatei ab, in der sie definiert sind. |
QuellenEinschließen | Einschließen – Ordnet Elemente anhand des Pfadnamens der Quelldatei zu, in der sie definiert sind. |
AttributeExclude | Ausschließen – Entspricht Elementen, die das angegebene Attribut haben. Geben Sie den vollständigen Namen des Attributs an |
AttributeInclude | Einschließen – Entspricht Elementen, die das angegebene Attribut haben. Geben Sie den vollständigen Namen des Attributs an |
FunktionenAusschließen | Ausschließen – Gleicht Prozeduren, Funktionen oder Methoden anhand des vollständig qualifizierten Namens ab, einschließlich der Parameterliste. |
FunctionsInclude | Einschließen – Ordnet Prozeduren, Funktionen oder Methoden anhand des vollständig qualifizierten Namens zu, einschließlich der Parameterliste. |
Bettdecke | |
RunSettingsOnly | Geben Sie „false“ für globale Optionen und Projektoptionen an, die für Konfigurationselemente des Coverlet-Datensammlers verwendet werden sollen, wenn sie nicht in den Ausführungseinstellungen angegeben werden |
CoverletCollectorDirectoryPath | Geben Sie den Pfad zum Verzeichnis mit den Coverlet-Collector-Dateien an, wenn Sie Funktionen benötigen, die die FCC-Version nicht bietet. |
CoverletConsoleLocal | Geben Sie „true“ an, um die lokale Installation der Coverlet-Konsole mit Ihren eigenen Dotnet-Tools zu verwenden. |
CoverletConsoleCustomPath | Geben Sie den Pfad zur Coverlet-Konsolen-Exe an, wenn Sie Funktionen benötigen, die die FCC-Version nicht bietet. |
CoverletConsoleGlobal | Geben Sie „true“ an, um Ihre eigene globale Dotnet-Tools-Installation der Coverlet-Konsole zu verwenden. |
Die „CoverletConsole“-Einstellungen haben Vorrang: Lokal/CustomPath/Global. | |
OpenCover | |
OpenCoverRegister | Ändern Sie den Standardwert, wenn die FCC-Bestimmung von Pfad32 oder Pfad64 falsch ist. |
OpenCoverTarget | Geben Sie bei Bedarf Ihr eigenes Ziel an. |
OpenCoverTargetArgs | Wenn Sie Ihr eigenes Ziel angeben, können Sie auch zusätzliche Argumente angeben. FCC stellt den Test-DLL-Pfad bereit. |
OpenCoverCustomPath | Geben Sie den Pfad zum Öffnen der Cover-Exe an, wenn Sie Funktionen benötigen, die die FCC-Version nicht bietet. |
ThresholdForNPathComplexity | Wenn die npath-Komplexität diesen Wert für eine Methode überschreitet, wird die Methode auf der Registerkarte „Risiko-Hotspots“ angezeigt. |
ThresholdForCrapScore | Wenn der Crap-Score diesen Wert für eine Methode überschreitet, wird die Methode auf der Registerkarte „Risiko-Hotspots“ angezeigt. |
Sie möchten wahrscheinlich IncludeReferencedProjects auf true setzen. Dadurch wird sichergestellt, dass Sie keine Abdeckung für das Testen von Frameworks erhalten, sondern nur Ihren Code.
Coverlet und OpenCover verwenden Filterausdrücke. Ausdrücke filtern
Platzhalter
* => entspricht null oder mehr Zeichen. Beispiele
[*]* => Alle Typen in allen Baugruppen.
[coverlet.*]Coverlet.Core.Coverage => Die Coverage-Klasse im Coverlet.Core-Namespace, die zu jeder Assembly gehört, die mit coverlet.* übereinstimmt (z. B. coverlet.core)
[*]Coverlet.Core.Instrumentation.* => Alle Typen, die zum Coverlet.Core.Instrumentation-Namespace in einer beliebigen Assembly gehören
[coverlet.*.tests]* => Alle Typen in jeder Baugruppe, beginnend mit coverlet. und endet mit .tests
Die Optionen „Ausschließen“ und „Einschließen“ können zusammen verwendet werden, „Ausschließen“ hat jedoch Vorrang.
Die MS-Codeabdeckung verwendet reguläre Ausdrücke. Sie können Assemblys oder bestimmte Typen und Member in die Codeabdeckungsanalyse einschließen oder ausschließen. Wenn der Abschnitt „Einschließen“ leer ist oder weggelassen wird, werden alle geladenen Assemblys mit zugehörigen PDB-Dateien einbezogen. Wenn eine Assembly oder ein Mitglied mit einer Klausel im Abschnitt „Ausschließen“ übereinstimmt, wird sie von der Codeabdeckung ausgeschlossen. Der Abschnitt „Ausschließen“ hat Vorrang vor dem Abschnitt „Einschließen“: Wenn eine Assembly sowohl in „Einschließen“ als auch in „Ausschließen“ aufgeführt ist, wird sie nicht in die Codeabdeckung einbezogen.
Sie können eine Methode oder eine ganze Klasse aus der Codeabdeckung ignorieren, indem Sie das im System.Diagnostics.CodeAnalysis-Namespace vorhandene Attribut [ExcludeFromCodeCoverage] anwenden.
Für .Net (nicht .Net Framework) kann dieses Attribut auf Assembly-Ebene angewendet werden.
Für .Net Framework siehe FCCExcludeFromCodeCoverage oben für ähnliche Funktionen.
So ignorieren Sie Code, der einem anderen Typ zugeordnet ist:
Sie können zusätzliche Attribute auch ignorieren, indem Sie sie zur Liste „ExcludeByAttribute“ hinzufügen. Bei Coverlet/OpenCover können Sie sie auch zur Liste „ExcludeByAttribute“ hinzufügen (vollqualifiziert oder nicht qualifiziert). Für MS-Codeabdeckung zur Liste „AttributesExclude“ hinzufügen. Dies verwendet Regex-Matching.
FCC-Ausgaben erfolgen standardmäßig im Debug-Ordner jedes Testprojekts. Wenn Sie möchten, können Sie einen Ordner angeben, der die intern ausgegebenen und von FCC verwendeten Dateien enthalten soll. Beide Methoden unten suchen nach einem Verzeichnis mit einer SLN-Datei in einem übergeordneten Verzeichnis des Verzeichnisses, das die erste Testprojektdatei enthält. Wenn ein solches Lösungsverzeichnis gefunden wird, gilt die Logik.
Wenn das Lösungsverzeichnis ein Unterverzeichnis fcc-output hat, wird dieses automatisch verwendet.
Wenn Sie alternativ FCCSolutionOutputDirectoryName in den Optionen angeben, wird das Verzeichnis bei Bedarf erstellt und verwendet.
Schauen Sie sich die Beitragsrichtlinien an, wenn Sie zu diesem Projekt beitragen möchten.
Wenn Sie dieses Projekt selbst klonen und erstellen möchten, müssen Sie unbedingt die Extensibility Essentials-Erweiterung für Visual Studio installieren, die einige von diesem Projekt verwendete Funktionen aktiviert.
Apache 2.0
Bettdecke
OpenCover
Berichtsgenerator
Anbieter | Typ | Link |
---|---|---|
Paypal | Einmal | |
Liberapay | Wiederkehrend |