Skip to content

Commit 7e0bf3c

Browse files
authored
Merge pull request #20 from corinblaikie/master
fix open cover reporter so that it uses unique ids over multiple modules
2 parents afd49c9 + 9ebf6ec commit 7e0bf3c

File tree

2 files changed

+50
-8
lines changed

2 files changed

+50
-8
lines changed

src/coverlet.core/Reporters/OpenCoverReporter.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ public string Format(CoverageResult result)
2525
int numSequencePoints = 0, numClasses = 0, numMethods = 0;
2626
int visitedSequencePoints = 0, visitedClasses = 0, visitedMethods = 0;
2727

28+
int i = 1;
29+
2830
foreach (var mod in result.Modules)
2931
{
3032
XmlElement module = xml.CreateElement("Module");
@@ -44,10 +46,8 @@ public string Format(CoverageResult result)
4446
module.AppendChild(name);
4547

4648
XmlElement files = xml.CreateElement("Files");
47-
XmlElement classes = xml.CreateElement("Classes");
48-
49-
int i = 1;
50-
49+
XmlElement classes = xml.CreateElement("Classes");
50+
5151
foreach (var doc in mod.Value)
5252
{
5353
XmlElement file = xml.CreateElement("File");

test/coverlet.core.tests/Reporters/OpenCoverReporterTests.cs

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,34 @@ public void TestFormat()
1010
{
1111
CoverageResult result = new CoverageResult();
1212
result.Identifier = Guid.NewGuid().ToString();
13+
14+
result.Modules = new Modules();
15+
result.Modules.Add("Coverlet.Core.Reporters.Tests", CreateFirstDocuments());
16+
17+
OpenCoverReporter reporter = new OpenCoverReporter();
18+
Assert.NotEqual(string.Empty, reporter.Format(result));
19+
}
20+
21+
[Fact]
22+
public void TestFilesHaveUniqueIdsOverMultipleModules()
23+
{
24+
CoverageResult result = new CoverageResult();
25+
result.Identifier = Guid.NewGuid().ToString();
26+
27+
result.Modules = new Modules();
28+
result.Modules.Add("Coverlet.Core.Reporters.Tests", CreateFirstDocuments());
29+
result.Modules.Add("Some.Other.Module", CreateSecondDocuments());
30+
31+
OpenCoverReporter reporter = new OpenCoverReporter();
32+
var xml = reporter.Format(result);
33+
Assert.NotEqual(string.Empty, xml);
34+
35+
Assert.Contains(@"<FileRef uid=""1"" />", xml);
36+
Assert.Contains(@"<FileRef uid=""2"" />", xml);
37+
}
38+
39+
private static Documents CreateFirstDocuments()
40+
{
1341
Lines lines = new Lines();
1442
lines.Add(1, 1);
1543
lines.Add(2, 0);
@@ -19,11 +47,25 @@ public void TestFormat()
1947
classes.Add("Coverlet.Core.Reporters.Tests.OpenCoverReporterTests", methods);
2048
Documents documents = new Documents();
2149
documents.Add("doc.cs", classes);
22-
result.Modules = new Modules();
23-
result.Modules.Add("module", documents);
50+
return documents;
51+
}
2452

25-
OpenCoverReporter reporter = new OpenCoverReporter();
26-
Assert.NotEqual(string.Empty, reporter.Format(result));
53+
private static Documents CreateSecondDocuments()
54+
{
55+
Lines lines = new Lines();
56+
lines.Add(1, 1);
57+
lines.Add(2, 0);
58+
59+
Methods methods = new Methods();
60+
methods.Add("System.Void Some.Other.Module.TestClass.TestMethod()", lines);
61+
62+
Classes classes2 = new Classes();
63+
classes2.Add("Some.Other.Module.TestClass", methods);
64+
65+
var documents = new Documents();
66+
documents.Add("TestClass.cs", classes2);
67+
68+
return documents;
2769
}
2870
}
2971
}

0 commit comments

Comments
 (0)