public static void InitializeReport()
        {
            _logs = new List <string>();

            _report = new ReportLogs
            {
                Name = "Trade Me Sandbox Test Automation"
            };

            var reportsFilenamePrefix = "Trade Me Sandbox";

            var reportsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports");

            if (!Directory.Exists(reportsDirectory))
            {
                Directory.CreateDirectory(reportsDirectory);
            }

            var reportsFilename = $"{reportsFilenamePrefix}_{DateTime.Now:yyyyMMdd_HHmmss}_Test Automation.html";

            var reportsPath = Path.Combine(reportsDirectory, reportsFilename);

            _v3HtmlReporter = new ExtentV3HtmlReporter(reportsPath);

            _v3HtmlReporter.LoadConfig(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "extent-config.xml"));

            _v3HtmlReporter.Start();

            _extent = new ExtentReports();

            _extent.AttachReporter(_v3HtmlReporter);
        }
示例#2
0
 public static void ReportSetup()
 {
     if (Properties.Test.Default.GenerateReport)
     {
         _report = new ReportLogs
         {
             Name = "AzureCalculator_API"
         };
         _v3HtmlReporter = ReportGenerator.InitializeReport("AzureCalculator_API");
         _v3HtmlReporter.Start();
         _extent = new ExtentReports();
         _extent.AttachReporter(_v3HtmlReporter);
     }
 }
        public static void CreateStepNode(
            ReportLogs report, List <string> logs,
            FeatureContext featureContext, TestContext testContext,
            ScenarioContext scenarioContext, Contexts contexts)
        {
            if (report.Features == null)
            {
                report.Features = new List <FeatureNode>();
            }

            var feature = report.Features.Find(f => f.Name == featureContext.FeatureInfo.Title);

            if (feature == null)
            {
                feature = new FeatureNode
                {
                    Name = featureContext.FeatureInfo.Title
                };

                report.Features.Add(feature);
            }

            if (feature.Scenarios == null)
            {
                feature.Scenarios = new List <ScenarioNode>();
            }

            var scenario = feature.Scenarios.Find(s => s.Name == testContext.TestName);

            if (scenario == null)
            {
                scenario = new ScenarioNode
                {
                    Name = testContext.TestName,
                    Tags = scenarioContext.ScenarioInfo.Tags
                };

                feature.Scenarios.Add(scenario);
            }

            var keyword = scenarioContext.StepContext.StepInfo.StepInstance.Keyword;
            var step    = scenarioContext.StepContext.StepInfo.StepInstance.Text;

            if (string.IsNullOrEmpty(keyword))
            {
                keyword = scenarioContext.StepContext.StepInfo.StepInstance.StepDefinitionKeyword.ToString();

                logs.Add($"{keyword} {step}");
                logs.AddRange(contexts.Logs);
            }
            else
            {
                logs = logs?.Select(x => "&emsp;" + x.Replace("<br />", "<br />&emsp;")).ToList();

                logs.AddRange(contexts.Logs);

                if (scenario.Steps == null)
                {
                    scenario.Steps = new List <StepNode>();
                }

                if (scenarioContext.TestError == null)
                {
                    scenario.Steps.Add(new StepNode
                    {
                        Keyword      = keyword,
                        Name         = step,
                        Pass         = true,
                        Logs         = new List <string>(logs),
                        ErrorMessage = string.Empty,
                        Screenshot   = string.Empty
                    });
                }
                else
                {
                    scenario.Steps.Add(new StepNode
                    {
                        Keyword      = keyword,
                        Name         = step,
                        Pass         = scenarioContext.TestError == null,
                        Logs         = new List <string>(logs),
                        ErrorMessage = scenarioContext.TestError.Message,

                        Screenshot = report.Name.Contains("API")? string.Empty : contexts.Screenshot
                    });
                }
            }
        }