Пример #1
0
        public void CreateReport(string input, string outputDirectory)
        {
            var attributes = File.GetAttributes(input);
            IEnumerable <FileInfo> filePathList;

            if ((FileAttributes.Directory & attributes) == FileAttributes.Directory)
            {
                filePathList = new DirectoryInfo(input).GetFiles("*.xml", SearchOption.AllDirectories)
                               .OrderByDescending(f => f.CreationTime);
            }
            else
            {
                if (File.Exists(input))
                {
                    filePathList = new[] { new FileInfo(input) };
                }
                else
                {
                    filePathList = new DirectoryInfo(Directory.GetCurrentDirectory()).GetFiles(input);
                }
            }

            InitializeRazor();

            var compositeTemplate = new CompositeTemplate();

            foreach (var filePath in filePathList)
            {
                var testRunner = GetTestRunner(filePath.FullName);

                if (!(testRunner.Equals(TestRunner.Unknown)))
                {
                    var parser = (IParser)Assembly.GetExecutingAssembly().CreateInstance(Ns + "." + Enum.GetName(typeof(TestRunner), testRunner));
                    var report = parser.Parse(filePath.FullName);

                    compositeTemplate.AddReport(report);
                }
            }
            if (compositeTemplate.ReportList == null)
            {
                Logger.GetLogger().Fatal("No reports added - invalid files?");
                return;
            }
            if (compositeTemplate.ReportList.Count > 1)
            {
                compositeTemplate.SideNavLinks = compositeTemplate.SideNavLinks.Insert(0, Templates.SideNav.IndexLink);

                var summary = Engine.Razor.RunCompile(Templates.TemplateManager.GetSummaryTemplate(), "summary", typeof(Model.CompositeTemplate), compositeTemplate, null);
                File.WriteAllText(Path.Combine(outputDirectory, "Index.html"), summary);
            }

            foreach (var report in compositeTemplate.ReportList)
            {
                report.SideNavLinks = compositeTemplate.SideNavLinks;

                var html = Engine.Razor.RunCompile(Templates.TemplateManager.GetFileTemplate(), "report", typeof(Model.Report), report, null);
                File.WriteAllText(Path.Combine(outputDirectory, report.FileName + ".html"), html);
            }
        }
Пример #2
0
        public void CreateReport(string input, string outputDirectory)
        {
            var attributes = File.GetAttributes(input);
            IEnumerable <FileInfo> filePathList;

            if ((FileAttributes.Directory & attributes) == FileAttributes.Directory)
            {
                filePathList = new DirectoryInfo(input).GetFiles("*.xml", SearchOption.AllDirectories)
                               .OrderBy(f => f.CreationTime);
            }
            else
            {
                filePathList = new DirectoryInfo(Directory.GetCurrentDirectory()).GetFiles(input);
            }

            InitializeRazor();

            var compositeTemplate = new CompositeTemplate();

            foreach (var filePath in filePathList)
            {
                var testRunner = GetTestRunner(filePath.FullName);

                if (!(testRunner.Equals(TestRunner.Unknown)))
                {
                    IParser parser = (IParser)Assembly.GetExecutingAssembly().CreateInstance(_ns + "." + Enum.GetName(typeof(TestRunner), testRunner));
                    var     report = parser.Parse(filePath.FullName);

                    compositeTemplate.AddReport(report);
                }
            }


            compositeTemplate.SideNavLinks = compositeTemplate.SideNavLinks.Insert(0, Templates.SideNav.TimeAnalytics);
            compositeTemplate.SideNavLinks = compositeTemplate.SideNavLinks.Insert(0, Templates.SideNav.IndexLink);
            compositeTemplate.SideNavLinks = compositeTemplate.SideNavLinks.Insert(0, Templates.SideNav.SummaryLink);

            string index = Engine.Razor.RunCompile(Templates.Summary.GetSource(), "index", typeof(Model.CompositeTemplate), compositeTemplate, null);

            File.WriteAllText(Path.Combine(outputDirectory, "Index.ejs"), index);
            string summary = Engine.Razor.RunCompile(Templates.TemplateManager.GetReportsTemplate(), "summary", typeof(CompositeTemplate), compositeTemplate);

            File.WriteAllText(Path.Combine(outputDirectory, "Summary.ejs"), summary);

            string timeAnalytics = Engine.Razor.RunCompile(Templates.TemplateManager.GetTimeAnalyticsTemplate(), "timeAnalytics", typeof(CompositeTemplate), compositeTemplate);

            File.WriteAllText(Path.Combine(outputDirectory, "timeAnalytics.ejs"), timeAnalytics);

            foreach (var report in compositeTemplate.ReportList)
            {
                report.SideNavLinks = compositeTemplate.SideNavLinks;

                var html = Engine.Razor.RunCompile(Templates.File.GetSource(), "report", typeof(Model.Report), report, null);
                File.WriteAllText(Path.Combine(outputDirectory, report.FileName + ".ejs"), html);
            }
        }
Пример #3
0
        public void CreateReport(string input, string outputDirectory)
        {
            var           attributes = File.GetAttributes(input);
            List <string> filePathList;

            if ((FileAttributes.Directory & attributes) == FileAttributes.Directory)
            {
                filePathList = Directory.GetFiles(input, "*.*", SearchOption.TopDirectoryOnly).ToList();
            }
            else
            {
                filePathList = new List <string>();
                filePathList.Add(input);
            }

            InitializeRazor();

            var compositeTemplate = new CompositeTemplate();

            foreach (var filePath in filePathList)
            {
                var testRunner = GetTestRunner(filePath);

                if (!(testRunner.Equals(TestRunner.Unknown)))
                {
                    IParser parser = (IParser)Assembly.GetExecutingAssembly().CreateInstance(_ns + "." + Enum.GetName(typeof(TestRunner), testRunner));
                    var     report = parser.Parse(filePath);

                    compositeTemplate.AddReport(report);
                }
            }

            if (compositeTemplate.ReportList.Count > 1)
            {
                compositeTemplate.SideNavLinks = compositeTemplate.SideNavLinks.Insert(0, Templates.SideNav.IndexLink);

                string summary = Engine.Razor.RunCompile(Templates.Summary.GetSource(), "summary", typeof(Model.CompositeTemplate), compositeTemplate, null);
                File.WriteAllText(Path.Combine(outputDirectory, "Index.html"), summary);
            }

            foreach (var report in compositeTemplate.ReportList)
            {
                report.SideNavLinks = compositeTemplate.SideNavLinks;

                var html = Engine.Razor.RunCompile(Templates.File.GetSource(), "report", typeof(Model.Report), report, null);
                File.WriteAllText(Path.Combine(outputDirectory, report.FileName + ".html"), html);
            }
        }
Пример #4
0
        public void CreateReport(PathTypeEnum pathType, string inputPath, string outputPath = null)
        {
            IEnumerable <FileInfo> filePathList;

            if (pathType.Equals(PathTypeEnum.Directory))
            {
                filePathList = new DirectoryInfo(inputPath).GetFiles("*.xml", SearchOption.AllDirectories)
                               .OrderByDescending(f => f.CreationTime);
            }
            else
            {
                String directory = Path.GetDirectoryName(inputPath);
                filePathList = new DirectoryInfo(directory).GetFiles(Path.GetFileName(inputPath));
            }

            InitializeRazor();

            var compositeTemplate = new CompositeTemplate();

            foreach (var filePath in filePathList)
            {
                var testRunner = GetTestRunner(filePath.FullName);

                try
                {
                    IParser parser = ParserFactory.GetParser(testRunner);
                    var     report = parser.Parse(filePath.FullName);

                    compositeTemplate.AddReport(report);
                }
                catch (NotSupportedException ex)
                {
                    _logger.Log(Level.Error, ex.Message);
                }
            }

            if (!compositeTemplate.ReportList.Any())
            {
                Logger.GetLogger().Fatal("No reports added - invalid files?");
                return;
            }

            if (pathType == PathTypeEnum.Directory)
            {
                if (String.IsNullOrEmpty(outputPath))
                {
                    outputPath = inputPath;
                }

                compositeTemplate.SideNavLinks = compositeTemplate.SideNavLinks.Insert(0, Templates.SideNav.IndexLink);

                string summary = Engine.Razor.RunCompile(Templates.TemplateManager.GetSummaryTemplate(), "summary", typeof(Model.CompositeTemplate), compositeTemplate, null);

                File.WriteAllText(Path.Combine(outputPath, "Index.html"), summary);

                foreach (var report in compositeTemplate.ReportList)
                {
                    report.SideNavLinks = compositeTemplate.SideNavLinks;
                    var html = Engine.Razor.RunCompile(Templates.TemplateManager.GetFileTemplate(), "report", typeof(Model.Report), report, null);

                    File.WriteAllText(Path.Combine(outputPath, report.FileName + ".html"), html);
                }
            }
            else
            {
                var report = compositeTemplate.ReportList.FirstOrDefault();
                var html   = Engine.Razor.RunCompile(Templates.TemplateManager.GetFileTemplate(), "report", typeof(Model.Report), report, null);

                if (String.IsNullOrEmpty(outputPath))
                {
                    outputPath = Path.Combine(Path.GetDirectoryName(inputPath), Path.GetFileNameWithoutExtension(inputPath) + ".html");
                }
                File.WriteAllText(outputPath, html);
            }
        }