Esempio n. 1
0
        public void FolderReport(string resultsDirectory, string outputDirectory)
        {
            List<string> allFiles = Directory.GetFiles(resultsDirectory, "*.*", SearchOption.TopDirectoryOnly).ToList();
            var links = new List<string>();
            string outputFile;

            // if no files, end process
            if (allFiles.Count == 0)
            {
                logger.Info("No XML files were found in the given location. Exiting..");
                return;
            }

            string html = HTML.Folder.Base;
            source = new Source();

            // force link to always point to the existing folder
            links.Add("./Index.html");

            foreach (string file in allFiles)
            {
                ///Console.WriteLine("\n" + new string('-', 9));
                Console.WriteLine("");

                outputFile = Path.Combine(outputDirectory, Path.GetFileNameWithoutExtension(file) + ".html");
                Report reportData = BuildReport(file, outputFile);

                if (reportData != null)
                {
                    // force link to always point to the existing folder
                    links.Add("./" + Path.GetFileNameWithoutExtension(file) + ".html");

                    int passed = reportData.Passed;
                    int failed = reportData.Failed + reportData.Errors;
                    int other = reportData.Inconclusive + reportData.Skipped;

                    string runResult;

                    if (reportData.Status == Status.Inconclusive || reportData.Status == Status.Skipped || reportData.Status == Status.Unknown)
                    {
                        runResult = "other";
                    }
                    else if (reportData.Status == Status.Error || reportData.Status == Status.Failed)
                    {
                        runResult = Status.Failed.ToString();
                    }
                    else
                    {
                        runResult = reportData.Status.ToString();
                    }

                    html = html.Replace(ReportHelper.MarkupFlag("insertResult"), HTML.Folder.Row)
                                .Replace(ReportHelper.MarkupFlag("fullFilename"), Path.GetFileNameWithoutExtension(file) + ".html")
                                .Replace(ReportHelper.MarkupFlag("filename"), Path.GetFileNameWithoutExtension(file))
                                .Replace(ReportHelper.MarkupFlag("assembly"), Path.GetFileName(reportData.AssemblyName))
                                .Replace(ReportHelper.MarkupFlag("runresult"), runResult.ToLower())
                                .Replace(ReportHelper.MarkupFlag("totalTests"), reportData.Total.ToString())
                                .Replace(ReportHelper.MarkupFlag("totalPassed"), passed.ToString())
                                .Replace(ReportHelper.MarkupFlag("totalFailed"), failed.ToString())
                                .Replace(ReportHelper.MarkupFlag("allOtherTests"), other.ToString());

                    if (reportData.Total > 0)
                    {
                        html = html.Replace(ReportHelper.MarkupFlag("passedPercentage"), (Convert.ToInt32(passed) * 100 / Convert.ToInt32(reportData.Total)).ToString())
                                .Replace(ReportHelper.MarkupFlag("failedPercentage"), (Convert.ToInt32(failed) * 100 / Convert.ToInt32(reportData.Total)).ToString())
                                .Replace(ReportHelper.MarkupFlag("othersPercentage"), (Convert.ToInt32(other) * 100 / Convert.ToInt32(reportData.Total)).ToString());
                    }
                    else
                    {
                        html = html.Replace(ReportHelper.MarkupFlag("passedPercentage"), "0")
                                .Replace(ReportHelper.MarkupFlag("failedPercentage"), "0")
                                .Replace(ReportHelper.MarkupFlag("othersPercentage"), "0");
                    }
                }
            }

            string navLinks = "";
            foreach (string link in links)
            {
                navLinks += HTML.Folder.NavLink
                        .Replace(ReportHelper.MarkupFlag("linkSrc"), link)
                        .Replace(ReportHelper.MarkupFlag("linkName"), Path.GetFileNameWithoutExtension(link));
            }

            foreach (KeyValuePair<string, string> pair in source.SourceFiles)
            {
                File.WriteAllText(pair.Key, pair.Value
                        .Replace(ReportHelper.MarkupFlag("nav"), navLinks)
                        .Replace(ReportHelper.MarkupFlag("filename"), Path.GetFileNameWithoutExtension(pair.Key))
                        .Replace(ReportHelper.MarkupFlag("consoleLogs"), logger.GetLogsAsString()));
            }

            File.WriteAllText(Path.Combine(outputDirectory, "Index.html"), html
                .Replace(ReportHelper.MarkupFlag("nav"), navLinks)
                .Replace(ReportHelper.MarkupFlag("consoleLogs"), logger.GetLogsAsString()));
        }
Esempio n. 2
0
		public Parser(String path) {
			Source = new Source(path);
		}