public static CoverageLevel ParseStats(ICoverageStats coverageStats) { if (coverageStats.MethodsCovered == 0 && coverageStats.ClassesCovered == 0 && coverageStats.LinesCovered == 0) { if (coverageStats.TotalMethods == 0 && coverageStats.TotalClasses == 0 && coverageStats.TotalCoverableLines == 0) { return(CoverageLevel.Empty); } else { return(CoverageLevel.NotCovered); } } else if (coverageStats.MethodsCovered == coverageStats.TotalMethods && coverageStats.ClassesCovered == coverageStats.TotalClasses && coverageStats.LinesCovered == coverageStats.TotalCoverableLines) { return(CoverageLevel.FullyCovered); } else { return(CoverageLevel.PartiallyCovered); } }
public SourceFile(string fileName, IEnumerable <ISourceLine> lines, IEnumerable <ISourceClass> classes, SourceLanguage language, ICoverageStats stats) { Name = fileName; var sourceLines = lines as ISourceLine[] ?? lines.ToArray(); Lines = sourceLines; Classes = classes; Language = language; CoverageStats = stats; }
private string BuildCoverageStatsTable(string fileName, IEnumerable <ISourceClass> classes, ICoverageStats stats) { StringBuilder builder = new StringBuilder(); builder.Append("<table class=\"coverageStats\">"); builder.Append("<tbody>"); builder.AppendFormat( "<tr><th class=\"name\">Type</th><th class=\"coverageStat\">Class, %</th><th class=\"coverageStat\">Methods, %</th><th class=\"coverageStat\">Lines, %</th></tr>"); string coverageFmt = "{0}% ({1}/{2})"; string classCoverage; string methodCoverage; string lineCoverage; foreach (var sourceClass in classes) { classCoverage = string.Format(coverageFmt, sourceClass.CoverageStats.TotalClasses == 0 ? "N/A" : (sourceClass.CoverageStats.ClassesCovered / (float)sourceClass.CoverageStats.TotalClasses).ToString( CultureInfo.InvariantCulture), sourceClass.CoverageStats.ClassesCovered, sourceClass.CoverageStats.TotalClasses); methodCoverage = string.Format(coverageFmt, sourceClass.CoverageStats.TotalMethods == 0 ? "N/A" : (sourceClass.CoverageStats.MethodsCovered / (float)sourceClass.CoverageStats.TotalMethods).ToString( CultureInfo.InvariantCulture), sourceClass.CoverageStats.MethodsCovered, sourceClass.CoverageStats.TotalMethods); lineCoverage = string.Format(coverageFmt, sourceClass.CoverageStats.TotalCoverableLines == 0 ? "N/A" : (sourceClass.CoverageStats.LinesCovered / (float)sourceClass.CoverageStats.TotalCoverableLines).ToString( CultureInfo.InvariantCulture), sourceClass.CoverageStats.LinesCovered, sourceClass.CoverageStats.TotalCoverableLines); builder.AppendFormat("<tr><td class=\"name\">{0}</td><td class=\"coverageStat\">{1}</td><td class=\"coverageStat\">{2}</td><td class=\"coverageStat\">{3}</td></tr>", sourceClass.Name, classCoverage, methodCoverage, lineCoverage); } classCoverage = string.Format(coverageFmt, stats.TotalClasses == 0 ? "N/A" : (stats.ClassesCovered / (float)stats.TotalClasses).ToString( CultureInfo.InvariantCulture), stats.ClassesCovered, stats.TotalClasses); methodCoverage = string.Format(coverageFmt, stats.TotalMethods == 0 ? "N/A" : (stats.MethodsCovered / (float)stats.TotalMethods).ToString( CultureInfo.InvariantCulture), stats.MethodsCovered, stats.TotalMethods); lineCoverage = string.Format(coverageFmt, stats.TotalCoverableLines == 0 ? "N/A" : (stats.LinesCovered / (float)stats.TotalCoverableLines).ToString( CultureInfo.InvariantCulture), stats.LinesCovered, stats.TotalCoverableLines); builder.AppendFormat("<tr><td class=\"name\">{0}</td><td class=\"coverageStat\">{1}</td><td class=\"coverageStat\">{2}</td><td class=\"coverageStat\">{3}</td></tr>", fileName, classCoverage, methodCoverage, lineCoverage); builder.Append("</tbody>"); builder.Append("</table>"); return(builder.ToString()); }
public SourceLine(int lineNum, string line, CoverageLevel coverage, ICoverageStats stats) { LineNumber = lineNum; LineContents = line; CoverageStats = stats; }