protected virtual void GenerateHTMLReport(ICoverageParserTool tool)
        {
            if (_configuration.GenerateHTMLReport)
            {
                try
                {
                    using (new SimpleTimer("Parser", "ReportGeneration", _telemetry))
                    {
                        // Generate report
                        tool.GenerateHTMLReport();

                        // Copy coverage input files to report directory in a unique folder
                        if (Directory.Exists(_configuration.ReportDirectory))
                        {
                            string summaryFilesSubDir;

                            // Create a unique folder
                            do
                            {
                                summaryFilesSubDir = Path.Combine(_configuration.ReportDirectory, "Summary_" + Guid.NewGuid().ToString().Substring(0, 8));
                            } while (Directory.Exists(summaryFilesSubDir));

                            TraceLogger.Debug("Parser.GenerateHTMLReport: Creating summary file directory: " + summaryFilesSubDir);

                            Directory.CreateDirectory(summaryFilesSubDir);

                            // Copy the files
                            foreach (var summaryFile in _configuration.CoverageFiles)
                            {
                                var summaryFileName        = Path.GetFileName(summaryFile);
                                var destinationSummaryFile = Path.Combine(summaryFilesSubDir, summaryFileName);

                                TraceLogger.Debug("Parser.GenerateHTMLReport: Copying summary file " + summaryFile);
                                File.Copy(summaryFile, destinationSummaryFile, true);
                            }
                        }
                        else
                        {
                            TraceLogger.Debug("Parser.GenerateHTMLReport: Directory " + _configuration.ReportDirectory + " doesn't exist, skipping copying of coverage input files.");
                        }
                    }
                }
                catch (Exception e)
                {
                    _telemetry.AddFailure(e);
                    TraceLogger.Error(string.Format(Resources.HTMLReportError, e.Message));
                }
            }
        }
 public virtual void GenerateReport(ICoverageParserTool tool)
 {
     base.GenerateHTMLReport(tool);
 }
 protected override void GenerateHTMLReport(ICoverageParserTool tool)
 {
     GenerateReport(tool);
 }
 public TestParser(PublisherConfiguration config, ITelemetryDataCollector telemetryDataCollector, ICoverageParserTool tool) : base(config, telemetryDataCollector)
 {
     _tool = tool;
 }