public void TestCalculateSummary() { CoverageResult result = new CoverageResult(); result.Identifier = Guid.NewGuid().ToString(); Lines lines = new Lines(); lines.Add(1, 1); lines.Add(2, 0); Methods methods = new Methods(); methods.Add("System.Void Coverlet.Core.Tests.CoverageSummaryTests.TestCalculateSummary()", lines); Classes classes = new Classes(); classes.Add("Coverlet.Core.Tests.CoverageSummaryTests", methods); Documents documents = new Documents(); documents.Add("doc.cs", classes); result.Modules = new Modules(); result.Modules.Add("module", documents); CoverageSummary summary = new CoverageSummary(result); CoverageSummaryResult summaryResult = summary.CalculateSummary(); Assert.NotEmpty(summaryResult); Assert.True(summaryResult.ContainsKey("module")); Assert.Equal(50, summaryResult["module"]); }
public CoverageSummaryResult CalculateSummary() { CoverageSummaryResult result = new CoverageSummaryResult(); foreach (var mod in _result.Modules) { int totalLines = 0, linesCovered = 0; foreach (var doc in mod.Value) { foreach (var @class in doc.Value) { foreach (var method in @class.Value) { foreach (var line in method.Value) { totalLines++; if (line.Value.Hits > 0) { linesCovered++; } } } } } result.Add(System.IO.Path.GetFileNameWithoutExtension(mod.Key), totalLines == 0 ? totalLines : (linesCovered * 100) / totalLines); } return(result); }