Beispiel #1
0
		public XmlCoverageWriter(TextWriter txtwtr, XmlParser parser)
		{
			_writer = txtwtr;
			_moduleId = 1;
			_depth = 0;

			WriteHeader(parser);
		}
        public UnusedReport(TextWriter txtwtr, XmlParser parser)
		{
            _sourceFiles = new Dictionary<string, string[]>(StringComparer.OrdinalIgnoreCase);
			_writer = txtwtr;
			_moduleId = 1;
			_depth = 0;

			WriteHeader(parser);
		}
Beispiel #3
0
		void WriteHeader(XmlParser parser, string title, string[] files)
		{
			_writer.WriteLine("<?xml version='1.0' encoding='utf-8'?>");
			_writer.WriteLine("<?xml-stylesheet href='CoverageReport.xsl' type='text/xsl'?>");

			WriteLine("<coverageReport reportTitle='{0}' date='{1}' time='{2}' version='{3}'>", title, parser.StartTime.ToString("D"), parser.StartTime.ToString("T"), parser.VersionInfo);

			WriteLine("<project name='{0}' files='{1}' classes='{2}' members='{3}' nonCommentLines='{4}' " +
							"sequencePoints='{5}' unvisitedPoints='{6}' unvisitedFunctions='{7}' coverage='{8}' " +
							"acceptable='{9}' functionCoverage='{10}' acceptableFunction='{11}' filteredBy='{12}' " +
							"sortedBy='{13}'>",
							title, parser.TotalFiles, parser.TotalClasses, parser.TotalMembers, parser.TotalLines,
							parser.TotalSeqpnts, parser.UnvisitedSeqpnts, parser.UnvisitedMembers, parser.SeqpntCoverage,
							ACCEPTABLE, parser.MemberCoverage, ACCEPTABLE, "None",
							"Name"
							);

			WriteLine("<coverageFiles>");
			foreach (string file in files)
				WriteLine("<coverageFile>{0}</coverageFile>", file);
			WriteLine("</coverageFiles>");
			WriteLine("</project>");
		}
		private void WriteHeader(XmlParser parser)
		{
			MetricGroup methods = parser.ByMethod;
			_writer.WriteLine("<?xml version='1.0' encoding='utf-8'?>");
			//_writer.WriteLine("<?xml-stylesheet href='coverage.xsl' type='text/xsl'?>");
			WriteLine("<coverage profilerVersion='{0}' driverVersion='{1}' startTime='{2}' measureTime='{3}'>",
				parser.VersionInfo, parser.VersionDriver,
				XmlConvert.ToString(parser.StartTime, XmlDateTimeSerializationMode.RoundtripKind),
				XmlConvert.ToString( parser.StartTime,  XmlDateTimeSerializationMode.RoundtripKind)
				);
		}
Beispiel #5
0
		public XmlReport(TextWriter txtwtr, XmlParser parser, string title, string[] files)
		{
			_writer = txtwtr;
			WriteHeader(parser, title, files);
		}
Beispiel #6
0
		static int Main(string[] raw)
		{
			ArgumentList args = new ArgumentList(raw);
			using (Log.AppStart(Environment.CommandLine))
			{
				if (args.Count == 0 || args.Unnamed.Count == 0 || args.Contains("?"))
					return DoHelp();
				if (args.Contains("nologo") == false)
				{
					Console.WriteLine("CSharpTest.Net.CoverageReport.exe");
					Console.WriteLine("Copyright 2009 by Roger Knapp, Licensed under the Apache License, Version 2.0");
					Console.WriteLine("");
				}

				try
				{
					List<string> filesFound = new List<string>();
					FileList files = new FileList();
					files.RecurseFolders = args.Contains("s");
					files.Add(new List<string>(args.Unnamed).ToArray());

					XmlParser parser = new XmlParser( args.SafeGet("exclude").Values );
					foreach (System.IO.FileInfo file in files)
					{
						filesFound.Add(file.FullName);
						using(Log.Start("parsing file: {0}", file.FullName))
							parser.Parse(file.FullName);
					}

					parser.Complete();

					if (args.Contains("module"))
					{
						using (Log.Start("Creating module report."))
						using (XmlReport rpt = new XmlReport(OpenText(args["module"]), parser, "Module Summary", filesFound.ToArray()))
							new MetricReport(parser.ByModule).Write(rpt);
					}

					if (args.Contains("namespace"))
					{
						using (Log.Start("Creating namespace report."))
						using (XmlReport rpt = new XmlReport(OpenText(args["namespace"]), parser, "Namespace Summary", filesFound.ToArray()))
							new MetricReport(parser.ByNamespace).Write(rpt);
					}

					if (args.Contains("class"))
					{
						using (Log.Start("Creating class report."))
						using (XmlReport rpt = new XmlReport(OpenText(args["class"]), parser, "Module Class Summary", filesFound.ToArray()))
							new MetricReport(parser.ByModule, parser.ByNamespace, parser.ByClass).Write(rpt);
					}

                    if (args.Contains("unused"))
                    {
                        using (Log.Start("Creating unused statement report."))
                        using (UnusedReport rpt = new UnusedReport(OpenText(args["unused"]), parser))
                            new MetricReport(parser.ByModule, parser.ByMethod).Write(rpt);
                    }

					if (args.Contains("combine"))
					{
						using (Log.Start("Creating combined coverage file."))
						using (XmlCoverageWriter wtr = new XmlCoverageWriter(OpenText(args["combine"]), parser))
							new MetricReport(parser.ByModule, parser.ByMethod).Write(wtr);
					}
					//foreach (ModuleInfo mi in parser)
					//    Console.WriteLine("{0} hit {1} of {2} for {3}", mi.Name, mi.VisitedPoints, mi.SequencePoints, mi.CoveragePercent);

				}
				catch (Exception e)
				{
					Log.Error(e);
					Console.Error.WriteLine();
					Console.Error.WriteLine("Exception: {0}", e.Message);
					Console.Error.WriteLine();
					Environment.ExitCode = -1;
				}
			}

			if (args.Contains("wait"))
			{
				Console.WriteLine("Press [Enter] to continue...");
				Console.ReadLine();
			}

			return Environment.ExitCode;
		}