コード例 #1
0
        public void RewriteLastRunWithCoverageData(DbCodeCoverage codeCoverage)
        {
            var codeCoverageFilePath = Path.Combine(_outputDir, "sqlcc.js");
            var codeCoverages        = GetCodeCoverageFile(codeCoverageFilePath);

            var lastCodeCoverage = codeCoverages.LastOrDefault();

            codeCoverage.Name      = lastCodeCoverage.Name;
            codeCoverage.StartDate = lastCodeCoverage.StartDate;

            codeCoverages.RemoveAt(codeCoverages.Count - 1);
            codeCoverages.Add(codeCoverage);
            SaveCodeCoverageFile(codeCoverages, codeCoverageFilePath);
        }
コード例 #2
0
        public void Execute()
        {
            var codeCoverageProcessor = new CodeCoverageProcessor(_dbCodeFormatter, _codeHighlighter);
            var codeCover             = new DbCodeCoverage();

            codeCover.Name              = _traceName;
            codeCover.TotalObjects      = _dbProvider.GetAllObjects();
            codeCover.TraceCodeSegments = _dbProvider.GetTraceCodeSegments(_traceName);

            codeCoverageProcessor.ProcessAllCoverage(codeCover);

            _outputProvider.SetUp(_traceName);
            _outputProvider.SaveResults(codeCover);
        }
コード例 #3
0
        public override bool SaveResults(DbCodeCoverage codeCoverage)
        {
            codeCoverage.EndDate = DateTime.Now;

            var baseLocation = _outputDir;

            var codeCoverageLocation = Path.Combine(baseLocation, codeCoverage.Name);

            Directory.CreateDirectory(codeCoverageLocation);
            WriteCodeCoverageMetaData(codeCoverage, codeCoverageLocation);
            WriteAllDbObjectFiles(codeCoverage.TotalObjects, baseLocation, codeCoverageLocation);
            RewriteLastRunWithCoverageData(codeCoverage);

            return(true);
        }
コード例 #4
0
        public void ProcessAllCoverage(DbCodeCoverage codeCover)
        {
            foreach (var obj in codeCover.TotalObjects)
            {
                obj.CoveredSegments = codeCover.TraceCodeSegments.Where(p => p.ObjectName.Equals(obj.Name)).ToList();
                obj.Set(ProcessObjectCoverage(obj));
                obj.CodeHighlighted = _highlightCodeProvider.HighlightCode(obj.Code, obj.CoveredSegments);

                codeCover.TotalLoc                  += obj.TotalLoc;
                codeCover.TotalFloc                 += obj.TotalFloc;
                codeCover.TotalCharacters           += obj.TotalCharacters;
                codeCover.TotalFunctionalCharacters += obj.TotalFunctionalCharacters;
                codeCover.CoveredCharacters         += (int)Math.Round(obj.TotalFunctionalCharacters * obj.CoveredPercent);
                codeCover.CoveredLinesOfCode        += (int)Math.Round(obj.TotalLoc * obj.CoveredPercent);
            }
            codeCover.CoveredPercent = ((decimal)codeCover.CoveredCharacters / codeCover.TotalFunctionalCharacters);
        }
コード例 #5
0
        public void Execute()
        {
            Console.WriteLine("Generating results...");

            var codeCoverageProcessor = new CodeCoverageProcessor(_dbCodeFormatter, _codeHighlighter);
            var codeCover             = new DbCodeCoverage();

            Console.WriteLine("    Getting all database objects...");
            codeCover.Name              = _traceName;
            codeCover.TotalObjects      = _dbProvider.GetAllObjects();
            codeCover.TraceCodeSegments = _dbProvider.GetTraceCodeSegments(_traceName);

            Console.WriteLine("    Parsing coverage for {0} database objects...", codeCover.TotalObjects.Count);
            codeCoverageProcessor.ProcessAllCoverage(codeCover);

            Console.WriteLine("    Saving output results...");
            _outputProvider.SetUp(_traceName);
            _outputProvider.SaveResults(codeCover);

            Console.WriteLine("Results generated.");
        }
コード例 #6
0
        public void ProcessAllCoverage(DbCodeCoverage codeCover)
        {
            var total = codeCover.TotalObjects.Count;
            int count = 0;

            foreach (var obj in codeCover.TotalObjects)
            {
                count += 1;
                Console.WriteLine("        Parsing object ({0} of {1}):  {2}", count, total, obj.Name);

                obj.CoveredSegments = codeCover.TraceCodeSegments.Where(p => p.ObjectName.Equals(obj.Name)).ToList();
                obj.Set(ProcessObjectCoverage(obj));
                obj.CodeHighlighted = _highlightCodeProvider.HighlightCode(obj.Code, obj.CoveredSegments);

                codeCover.TotalLoc                  += obj.TotalLoc;
                codeCover.TotalFloc                 += obj.TotalFloc;
                codeCover.TotalCharacters           += obj.TotalCharacters;
                codeCover.TotalFunctionalCharacters += obj.TotalFunctionalCharacters;
                codeCover.CoveredCharacters         += (int)Math.Round(obj.TotalFunctionalCharacters * obj.CoveredPercent);
                codeCover.CoveredLinesOfCode        += (int)Math.Round(obj.TotalLoc * obj.CoveredPercent);
            }
            codeCover.CoveredPercent = ((decimal)codeCover.CoveredCharacters / codeCover.TotalFunctionalCharacters);
        }
コード例 #7
0
 public abstract bool SaveResults(DbCodeCoverage codeCoverage);
コード例 #8
0
        private void WriteCodeCoverageMetaData(DbCodeCoverage codeCoverage, string location)
        {
            var json = "sqlcc_objects['" + codeCoverage.Name + "']=" + JsonHelper.JsonSerializer(codeCoverage.TotalObjects);

            File.WriteAllText(Path.Combine(location, "sqlcc.js"), json);
        }