private List <CoverageMetric> ProcessProjectFolders(CoverageSpecimen coverageSpecimen, List <Project> projects, string key) { var metrics = new List <CoverageMetric>(); if (projects == null) { return(metrics); } foreach (var project in projects) { var projectKey = $"{key}.{project.Name}"; if (!project.Namespaces.Any()) { continue; } foreach (var projectNamespace in project.Namespaces) { var projectNamespaceKey = $"{projectKey}.{projectNamespace.Name}"; metrics.Add(CreateCoverageMetric1(coverageSpecimen, projectNamespaceKey, projectNamespace.TotalStatements, projectNamespace.CoveredStatements, projectNamespace.CoveragePercent)); if (!projectNamespace.NamespaceTypes.Any()) { continue; } foreach (var namespaceType in projectNamespace.NamespaceTypes) { var namespaceTypeKey = $"{projectNamespaceKey}.{namespaceType.Name}"; metrics.Add(CreateCoverageMetric1(coverageSpecimen, namespaceTypeKey, namespaceType.TotalStatements, namespaceType.CoveredStatements, namespaceType.CoveragePercent)); } } } return(metrics); }
private CoverageMetric CreateCoverageMetric1(CoverageSpecimen coverageSpecimen, string key, string totalStatements, string coveredStatements, string coveragePercent) { var coverageMetric = CreateCoverageMetric(key, totalStatements, coveredStatements, coveragePercent); coverageMetric.Source = coverageSpecimen.RunDescription; coverageMetric.Solution = coverageSpecimen.Solution; return(coverageMetric); }
private List <CoverageMetric> ProcessSolutionFolders(CoverageSpecimen coverageSpecimen, List <CodeCoverage.CoverageDtos.SolutionFolder> solutionFolders, string key) { var metrics = new List <CoverageMetric>(); foreach (var childSolutionFolder in solutionFolders) { var projectMetrics = ProcessProjectFolders(coverageSpecimen, childSolutionFolder.Projects, key); metrics.AddRange(projectMetrics); List <CoverageMetric> folderMetrics = ProcessSolutionFolders(coverageSpecimen, childSolutionFolder.SolutionFolders, key); metrics.AddRange(folderMetrics); } return(metrics); }
private List <CoverageMetric> GetCoverageMetrics(CoverageSpecimen coverageSpecimen) { var metrics = new List <CoverageMetric>(); var key = coverageSpecimen.Solution + "Root"; var id = 0; var folderMetrics = ProcessSolutionFolders(coverageSpecimen, coverageSpecimen.DtoRoot.SolutionFolders, key); metrics.AddRange(folderMetrics); var projectMetrics = ProcessProjectFolders(coverageSpecimen, coverageSpecimen.DtoRoot.Projects, key); metrics.AddRange(projectMetrics); return(metrics); }
private static void FillNodeChildren(UltraTreeNode clientTopNode, string directoryPath) { foreach (var file in Directory.GetFiles(directoryPath)) { var node = new UltraTreeNode(Path.GetFileNameWithoutExtension(file).Substring(0, 10)); var sample = GenericSerializer.DeserializeFilePath <CodeCoverage.CoverageDtos.Root>(file); var coverageSpecimen = new CoverageSpecimen { Solution = clientTopNode.Key, //RootSample = sample, DtoRoot = sample, RunDescription = node.Text }; node.Key = file; node.Tag = coverageSpecimen; Decimal detailedCoveragePercent = Convert.ToDecimal(sample.CoveredStatements) / Convert.ToDecimal(sample.TotalStatements) * 100m; node.Text += $" ({sample.CoveredStatements} / {sample.TotalStatements} / {detailedCoveragePercent.ToString("0,0.000")}%)"; clientTopNode.Nodes.Add(node); } }