Skip to content

Commit 65a374e

Browse files
committed
add branch point info to opencover output format
1 parent 73db2f6 commit 65a374e

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

src/coverlet.core/Reporters/OpenCoverReporter.cs

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ public string Format(CoverageResult result)
2222

2323
XmlElement modules = xml.CreateElement("Modules");
2424

25-
int numSequencePoints = 0, numClasses = 0, numMethods = 0;
26-
int visitedSequencePoints = 0, visitedClasses = 0, visitedMethods = 0;
25+
int numSequencePoints = 0, numBranchPoints = 0, numClasses = 0, numMethods = 0;
26+
int visitedSequencePoints = 0, visitedBranchPoints = 0, visitedClasses = 0, visitedMethods = 0;
2727

2828
int i = 1;
2929

@@ -102,8 +102,10 @@ public string Format(CoverageResult result)
102102

103103
// They're really just lines
104104
XmlElement sequencePoints = xml.CreateElement("SequencePoints");
105+
XmlElement branchPoints = xml.CreateElement("BranchPoints");
105106
XmlElement methodSummary = xml.CreateElement("Summary");
106107
int k = 0;
108+
int kBr = 0;
107109
var methodVisited = false;
108110

109111
foreach (var lines in meth.Value)
@@ -121,12 +123,27 @@ public string Format(CoverageResult result)
121123
sequencePoint.SetAttribute("fileid", i.ToString());
122124
sequencePoints.AppendChild(sequencePoint);
123125

126+
if (lines.Value.IsBranchPoint)
127+
{
128+
XmlElement branchPoint = xml.CreateElement("BranchPoint");
129+
branchPoint.SetAttribute("vc", lines.Value.Hits.ToString());
130+
branchPoint.SetAttribute("upsid", lines.Key.ToString());
131+
branchPoint.SetAttribute("ordinal", kBr.ToString());
132+
branchPoint.SetAttribute("sl", lines.Key.ToString());
133+
branchPoint.SetAttribute("fileid", i.ToString());
134+
branchPoints.AppendChild(branchPoint);
135+
kBr++;
136+
numBranchPoints++;
137+
}
138+
124139
numSequencePoints++;
125140
if (lines.Value.Hits > 0)
126141
{
127142
visitedSequencePoints++;
128143
classVisited = true;
129144
methodVisited = true;
145+
if (lines.Value.IsBranchPoint)
146+
visitedBranchPoints++;
130147
}
131148

132149
k++;
@@ -138,8 +155,8 @@ public string Format(CoverageResult result)
138155

139156
methodSummary.SetAttribute("numSequencePoints", meth.Value.Count().ToString());
140157
methodSummary.SetAttribute("visitedSequencePoints", meth.Value.Where(l => l.Value.Hits > 0).Count().ToString());
141-
methodSummary.SetAttribute("numBranchPoints", "0");
142-
methodSummary.SetAttribute("visitedBranchPoints", "0");
158+
methodSummary.SetAttribute("numBranchPoints", meth.Value.Where(l => l.Value.IsBranchPoint).Count().ToString());
159+
methodSummary.SetAttribute("visitedBranchPoints", meth.Value.Where(l => l.Value.IsBranchPoint && l.Value.Hits > 0).Count().ToString());
143160
methodSummary.SetAttribute("sequenceCoverage", "0");
144161
methodSummary.SetAttribute("branchCoverage", "0");
145162
methodSummary.SetAttribute("maxCyclomaticComplexity", "0");
@@ -154,7 +171,7 @@ public string Format(CoverageResult result)
154171
method.AppendChild(methodName);
155172
method.AppendChild(fileRef);
156173
method.AppendChild(sequencePoints);
157-
method.AppendChild(xml.CreateElement("BranchPoints"));
174+
method.AppendChild(branchPoints);
158175
method.AppendChild(methodPoint);
159176
methods.AppendChild(method);
160177
j++;
@@ -166,8 +183,8 @@ public string Format(CoverageResult result)
166183

167184
classSummary.SetAttribute("numSequencePoints", cls.Value.Select(c => c.Value.Count).Sum().ToString());
168185
classSummary.SetAttribute("visitedSequencePoints", cls.Value.Select(c => c.Value.Where(l => l.Value.Hits > 0).Count()).Sum().ToString());
169-
classSummary.SetAttribute("numBranchPoints", "0");
170-
classSummary.SetAttribute("visitedBranchPoints", "0");
186+
classSummary.SetAttribute("numBranchPoints", cls.Value.Select(c => c.Value.Count(l => l.Value.IsBranchPoint)).Sum().ToString());
187+
classSummary.SetAttribute("visitedBranchPoints", cls.Value.Select(c => c.Value.Where(l => l.Value.Hits > 0 && l.Value.IsBranchPoint).Count()).Sum().ToString());
171188
classSummary.SetAttribute("sequenceCoverage", "0");
172189
classSummary.SetAttribute("branchCoverage", "0");
173190
classSummary.SetAttribute("maxCyclomaticComplexity", "0");
@@ -192,8 +209,8 @@ public string Format(CoverageResult result)
192209

193210
coverageSummary.SetAttribute("numSequencePoints", numSequencePoints.ToString());
194211
coverageSummary.SetAttribute("visitedSequencePoints", visitedSequencePoints.ToString());
195-
coverageSummary.SetAttribute("numBranchPoints", "0");
196-
coverageSummary.SetAttribute("visitedBranchPoints", "0");
212+
coverageSummary.SetAttribute("numBranchPoints", numBranchPoints.ToString());
213+
coverageSummary.SetAttribute("visitedBranchPoints", visitedBranchPoints.ToString());
197214
coverageSummary.SetAttribute("sequenceCoverage", "0");
198215
coverageSummary.SetAttribute("branchCoverage", "0");
199216
coverageSummary.SetAttribute("maxCyclomaticComplexity", "0");

0 commit comments

Comments
 (0)