public void TestLineBranchCoverage()
        {
            var result = new CoverageResult
            {
                Identifier = Guid.NewGuid().ToString(),
                Modules    = new Modules {
                    { "Coverlet.Core.Reporters.Tests", CreateBranchCoverageDocuments() }
                },
                Parameters = new CoverageParameters()
            };

            var xml = new OpenCoverReporter().Report(result, new Mock <ISourceRootTranslator>().Object);

            // Line 1: Two branches, no coverage (bec = 2, bev = 0)
            Assert.Contains(@"<SequencePoint vc=""1"" uspid=""1"" ordinal=""0"" sl=""1"" sc=""1"" el=""1"" ec=""2"" bec=""2"" bev=""0"" fileid=""1"" />", xml);

            // Line 2: Two branches, one covered (bec = 2, bev = 1)
            Assert.Contains(@"<SequencePoint vc=""1"" uspid=""2"" ordinal=""1"" sl=""2"" sc=""1"" el=""2"" ec=""2"" bec=""2"" bev=""1"" fileid=""1"" />", xml);

            // Line 3: Two branches, all covered (bec = 2, bev = 2)
            Assert.Contains(@"<SequencePoint vc=""1"" uspid=""3"" ordinal=""2"" sl=""3"" sc=""1"" el=""3"" ec=""2"" bec=""2"" bev=""2"" fileid=""1"" />", xml);

            // Line 4: Three branches, two covered (bec = 3, bev = 2)
            Assert.Contains(@"<SequencePoint vc=""1"" uspid=""4"" ordinal=""3"" sl=""4"" sc=""1"" el=""4"" ec=""2"" bec=""3"" bev=""2"" fileid=""1"" />", xml);
        }
        public void TestFormat()
        {
            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.Reporters.Tests.OpenCoverReporterTests.TestFormat()", lines);
            Classes classes = new Classes();

            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);

            OpenCoverReporter reporter = new OpenCoverReporter();

            Assert.NotEqual(string.Empty, reporter.Format(result));
        }
Exemple #3
0
        public override bool Execute()
        {
            try
            {
                Console.WriteLine("\nCalculating coverage result...");
                var            coverage = InstrumentationTask.Coverage;
                CoverageResult result   = coverage.GetCoverageResult();

                var directory = Path.GetDirectoryName(_filename);
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }

                Console.WriteLine($"  Generating report '{_filename}'");

                IReporter reporter = default(IReporter);
                switch (_format)
                {
                case "lcov":
                    reporter = new LcovReporter();
                    break;

                case "opencover":
                    reporter = new OpenCoverReporter();
                    break;

                default:
                    reporter = new JsonReporter();
                    break;
                }

                File.WriteAllText(_filename, result.Format(reporter));

                CoverageSummary coverageSummary = new CoverageSummary(result);
                var             summary         = coverageSummary.CalculateSummary();

                ConsoleTable table = new ConsoleTable("Module", "Coverage");
                foreach (var item in summary)
                {
                    table.AddRow(item.Key, $"{item.Value}%");
                }

                Console.WriteLine();
                table.Write(Format.Alternative);
            }
            catch (Exception ex)
            {
                Log.LogErrorFromException(ex);
                return(false);
            }

            return(true);
        }
        public void TestReport()
        {
            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.Report(result));
        }
        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.Report(result);

            Assert.NotEqual(string.Empty, xml);

            Assert.Contains(@"<FileRef uid=""1"" />", xml);
            Assert.Contains(@"<FileRef uid=""2"" />", xml);
        }
Exemple #6
0
        public void TestReport()
        {
            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();
            string            report   = reporter.Report(result);

            Assert.NotEmpty(report);
            XDocument doc = XDocument.Load(new MemoryStream(Encoding.UTF8.GetBytes(report)));

            Assert.Empty(doc.Descendants().Attributes("sequenceCoverage").Where(v => v.Value != "33.3"));
            Assert.Empty(doc.Descendants().Attributes("branchCoverage").Where(v => v.Value != "25"));
        }
        public void TestReport()
        {
            var result = new CoverageResult();

            result.Parameters = new CoverageParameters();
            result.Identifier = Guid.NewGuid().ToString();

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

            var    reporter = new OpenCoverReporter();
            string report   = reporter.Report(result, new Mock <ISourceRootTranslator>().Object);

            Assert.NotEmpty(report);
            var doc = XDocument.Load(new MemoryStream(Encoding.UTF8.GetBytes(report)));

            Assert.Empty(doc.Descendants().Attributes("sequenceCoverage").Where(v => v.Value != "33.33"));
            Assert.Empty(doc.Descendants().Attributes("branchCoverage").Where(v => v.Value != "25"));
            Assert.Empty(doc.Descendants().Attributes("nPathComplexity").Where(v => v.Value != "4"));
        }