Skip to content

Commit

Permalink
Merge pull request #20 from corinblaikie/master
Browse files Browse the repository at this point in the history
fix open cover reporter so that it uses unique ids over multiple modules
  • Loading branch information
tonerdo authored Mar 27, 2018
2 parents afd49c9 + 9ebf6ec commit 7e0bf3c
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 8 deletions.
8 changes: 4 additions & 4 deletions src/coverlet.core/Reporters/OpenCoverReporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public string Format(CoverageResult result)
int numSequencePoints = 0, numClasses = 0, numMethods = 0;
int visitedSequencePoints = 0, visitedClasses = 0, visitedMethods = 0;

int i = 1;

foreach (var mod in result.Modules)
{
XmlElement module = xml.CreateElement("Module");
Expand All @@ -44,10 +46,8 @@ public string Format(CoverageResult result)
module.AppendChild(name);

XmlElement files = xml.CreateElement("Files");
XmlElement classes = xml.CreateElement("Classes");

int i = 1;

XmlElement classes = xml.CreateElement("Classes");

foreach (var doc in mod.Value)
{
XmlElement file = xml.CreateElement("File");
Expand Down
50 changes: 46 additions & 4 deletions test/coverlet.core.tests/Reporters/OpenCoverReporterTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,34 @@ public void TestFormat()
{
CoverageResult result = new CoverageResult();
result.Identifier = Guid.NewGuid().ToString();

result.Modules = new Modules();
result.Modules.Add("Coverlet.Core.Reporters.Tests", CreateFirstDocuments());

OpenCoverReporter reporter = new OpenCoverReporter();
Assert.NotEqual(string.Empty, reporter.Format(result));
}

[Fact]
public void TestFilesHaveUniqueIdsOverMultipleModules()
{
CoverageResult result = new CoverageResult();
result.Identifier = Guid.NewGuid().ToString();

result.Modules = new Modules();
result.Modules.Add("Coverlet.Core.Reporters.Tests", CreateFirstDocuments());
result.Modules.Add("Some.Other.Module", CreateSecondDocuments());

OpenCoverReporter reporter = new OpenCoverReporter();
var xml = reporter.Format(result);
Assert.NotEqual(string.Empty, xml);

Assert.Contains(@"<FileRef uid=""1"" />", xml);
Assert.Contains(@"<FileRef uid=""2"" />", xml);
}

private static Documents CreateFirstDocuments()
{
Lines lines = new Lines();
lines.Add(1, 1);
lines.Add(2, 0);
Expand All @@ -19,11 +47,25 @@ public void TestFormat()
classes.Add("Coverlet.Core.Reporters.Tests.OpenCoverReporterTests", methods);
Documents documents = new Documents();
documents.Add("doc.cs", classes);
result.Modules = new Modules();
result.Modules.Add("module", documents);
return documents;
}

OpenCoverReporter reporter = new OpenCoverReporter();
Assert.NotEqual(string.Empty, reporter.Format(result));
private static Documents CreateSecondDocuments()
{
Lines lines = new Lines();
lines.Add(1, 1);
lines.Add(2, 0);

Methods methods = new Methods();
methods.Add("System.Void Some.Other.Module.TestClass.TestMethod()", lines);

Classes classes2 = new Classes();
classes2.Add("Some.Other.Module.TestClass", methods);

var documents = new Documents();
documents.Add("TestClass.cs", classes2);

return documents;
}
}
}

0 comments on commit 7e0bf3c

Please sign in to comment.