Ejemplo n.º 1
0
        public static HtmlTextWriter AddTestEvents(this HtmlTextWriter writer, NunitGoTest nunitGoTest, string id = "")
        {
            writer.AddAttribute(HtmlTextWriterAttribute.Id, id.Equals("") ? "table-cell" : id);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "20px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            var events = nunitGoTest.Events.OrderBy(x => x.Started);
            foreach (var testEvent in events)
            {
                writer.RenderBeginTag(HtmlTextWriterTag.P);
                writer.AddTag(HtmlTextWriterTag.B, "Test event: ");
                writer.Write(testEvent.Name);
                writer.RenderEndTag(); //P

                writer.RenderBeginTag(HtmlTextWriterTag.P);
                writer.Write(Bullet.HtmlCode + "Started: " + testEvent.Started.ToString("dd.MM.yy HH:mm:ss.fff"));
                writer.RenderEndTag();
                writer.RenderBeginTag(HtmlTextWriterTag.P);
                writer.Write(Bullet.HtmlCode + "Finished: " + testEvent.Finished.ToString("dd.MM.yy HH:mm:ss.fff"));
                writer.RenderEndTag();
                writer.RenderBeginTag(HtmlTextWriterTag.P);
                writer.Write(Bullet.HtmlCode + "Duration: " + testEvent.DurationString);
                writer.RenderEndTag();

            }
            if (!events.Any())
                writer.Write("There are no test events in this test");
            writer.RenderEndTag();//DIV
            return writer;
        }
Ejemplo n.º 2
0
 public static HtmlTextWriter AddTestHistory(this HtmlTextWriter writer, NunitGoTest nunitGoTest, string id = "")
 {
     writer.AddAttribute(HtmlTextWriterAttribute.Id, id.Equals("") ? "table-cell" : id);
     writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "20px");
     writer.RenderBeginTag(HtmlTextWriterTag.Div);
     writer.AddAttribute(HtmlTextWriterAttribute.Id, Output.GetHistoryChartId(nunitGoTest.Guid, nunitGoTest.DateTimeFinish));
     writer.RenderBeginTag(HtmlTextWriterTag.Div);
     writer.RenderEndTag();//DIV
     writer.RenderEndTag();//DIV
     return writer;
 }
Ejemplo n.º 3
0
 public static HtmlTextWriter AddOutput(this HtmlTextWriter writer, NunitGoTest nunitGoTest, string testOutput, string id = "")
 {
     writer.AddAttribute(HtmlTextWriterAttribute.Id, id.Equals("") ? "table-cell" : id);
     writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "20px");
     writer.RenderBeginTag(HtmlTextWriterTag.Div);
     if (nunitGoTest.HasOutput)
     {
         writer.RenderBeginTag(HtmlTextWriterTag.P);
         writer.AddTag(HtmlTextWriterTag.B, "Test output: ");
         writer.Write(NunitTestHtml.GenerateTxtView(testOutput));
         writer.RenderEndTag(); //P
     }
     else
     {
         writer.Write("Test output is empty");
     }
     writer.RenderEndTag();//DIV
     return writer;
 }
Ejemplo n.º 4
0
        public static HtmlTextWriter AddTestResult(this HtmlTextWriter writer, NunitGoTest nunitGoTest, string id = "")
        {
            writer.AddAttribute(HtmlTextWriterAttribute.Id, id.Equals("") ? "table-cell" : id);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "20px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.AddTag(HtmlTextWriterTag.B, "Test full name: ");
            writer.Write(nunitGoTest.FullName);
            writer.RenderEndTag(); //P

            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.AddTag(HtmlTextWriterTag.B, "Test name: ");
            writer.Write(nunitGoTest.Name);
            writer.RenderEndTag(); //P

            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.AddTag(HtmlTextWriterTag.B, "Test duration: ");
            writer.Write(TimeSpan.FromSeconds(nunitGoTest.TestDuration).ToString(@"hh\:mm\:ss\:fff"));
            writer.RenderEndTag(); //P

            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.AddTag(HtmlTextWriterTag.B, "Time period: ");
            var start = nunitGoTest.DateTimeStart.ToString("dd.MM.yy HH:mm:ss.fff");
            var end = nunitGoTest.DateTimeFinish.ToString("dd.MM.yy HH:mm:ss.fff");
            writer.Write(start + " - " + end);
            writer.RenderEndTag(); //P

            writer.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, nunitGoTest.GetColor());
            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.RenderBeginTag(HtmlTextWriterTag.B);
            writer.Write("Test result: ");
            writer.RenderEndTag(); //B
            writer.Write(nunitGoTest.Result);
            writer.RenderEndTag(); //P

            writer.RenderEndTag(); //DIV
            return writer;
        }
Ejemplo n.º 5
0
 public static HtmlTextWriter AddFailure(this HtmlTextWriter writer, NunitGoTest nunitGoTest, string id = "")
 {
     writer.AddAttribute(HtmlTextWriterAttribute.Id, id.Equals("") ? "table-cell" : id);
     writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "20px");
     writer.RenderBeginTag(HtmlTextWriterTag.Div);
     if (!nunitGoTest.IsSuccess())
     {
         writer.RenderBeginTag(HtmlTextWriterTag.P);
         writer.AddTag(HtmlTextWriterTag.B, "Message: ");
         writer.Write(NunitTestHtml.GenerateTxtView(nunitGoTest.TestMessage));
         writer.RenderEndTag(); //P
         writer.RenderBeginTag(HtmlTextWriterTag.P);
         writer.AddTag(HtmlTextWriterTag.B, "Stack trace: ");
         writer.Write(NunitTestHtml.GenerateTxtView(nunitGoTest.TestStackTrace));
         writer.RenderEndTag(); //P
     }
     else
     {
         writer.Write("Test was successful, there is no failure message");
     }
     writer.RenderEndTag();//DIV
     return writer;
 }
Ejemplo n.º 6
0
 public static HtmlTextWriter AddScreenshots(this HtmlTextWriter writer, NunitGoTest nunitGoTest, string id = "")
 {
     writer.AddAttribute(HtmlTextWriterAttribute.Id, id.Equals("") ? "table-cell" : id);
     writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "20px");
     writer.RenderBeginTag(HtmlTextWriterTag.Div);
     var screens = nunitGoTest.Screenshots.OrderBy(x => x.Date);
     foreach (var screenshot in screens)
     {
         writer.Write("Screenshot (Date: " + screenshot.Date.ToString("dd.MM.yy HH:mm:ss.fff") + "):");
         writer.AddAttribute(HtmlTextWriterAttribute.Href, @"./../../Screenshots/" + screenshot.Name);
         writer.RenderBeginTag(HtmlTextWriterTag.A);
         writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
         writer.AddAttribute(HtmlTextWriterAttribute.Src, @"./../../Screenshots/" + screenshot.Name);
         writer.AddAttribute(HtmlTextWriterAttribute.Alt, screenshot.Name);
         writer.RenderBeginTag(HtmlTextWriterTag.Img);
         writer.RenderEndTag();//IMG
         writer.RenderEndTag();//A
     }
     if(!screens.Any())
         writer.Write("There are no screenshots in this test");
     writer.RenderEndTag();//DIV
     return writer;
 }
Ejemplo n.º 7
0
        public void AfterTest(ITest test)
        {
            _finish = DateTime.Now;
            _guid = _guid.Equals(Guid.Empty)
                ? (NunitGo.TestGuid.Equals(Guid.Empty) ? GuidConverter.ToMd5HashGuid(test.FullName) : NunitGo.TestGuid)
                : _guid;
            _testOutput = TestContext.Out.ToString();
            _testName = _testName.Equals("") ? NunitGo.TestName : _testName;

            var context = TestContext.CurrentContext;
            var relativeTestHref = "Attachments" + @"/" + _guid + @"/" + Output.Files.GetTestHtmlName(_finish);

            _nunitGoTest = new NunitGoTest
            {
                DateTimeStart = _start,
                DateTimeFinish = _finish,
                TestDuration = (_finish - _start).TotalSeconds,
                FullName = test.FullName,
                ProjectName = _projectName.Equals("") ? test.FullName.Split('.').First() : _projectName,
                ClassName = _className.Equals("") ? test.FullName.Split('.').Skip(1).First() : _className,
                Name = _testName.Equals("") ? test.Name : _testName,
                TestStackTrace = context.Result.StackTrace ?? "",
                TestMessage = context.Result.Message ?? "",
                Result = context.Result.Outcome?.ToString() ?? "Unknown",
                Guid = _guid,
                HasOutput = !_testOutput.Equals(string.Empty),
                AttachmentsPath = _attachmentsPath + _guid + @"\",
                TestHrefRelative = relativeTestHref,
                TestHrefAbsolute = _configuration.ServerLink + relativeTestHref,
                Events = NunitGo.GetEvents()
            };

            TakeScreenshotIfFailed();
            AddScreenshots();
            CleanUpTestFiles();
            SaveTestFiles();
            SendEmails(_nunitGoTest.IsSuccess());
            SendEmailsForEvents();
            GenerateReport();
            Flush();
        }
Ejemplo n.º 8
0
 private void Flush()
 {
     _guid = Guid.Empty;
     _nunitGoTest = new NunitGoTest();
     _start = default(DateTime);
     _finish = default(DateTime);
     NunitGo.TearDown();
 }
Ejemplo n.º 9
0
        public NunitTestHtml(NunitGoTest nunitGoTest, string testOutput = "")
        {
            Style = GetStyle();
            ResultColor = nunitGoTest.GetColor();

            var strWr = new StringWriter();
            using (var writer = new HtmlTextWriter(strWr))
            {
                writer.AddStyleAttribute(HtmlTextWriterStyle.Left, "0%");
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "test-window");
                writer.AddAttribute(HtmlTextWriterAttribute.Title, Title);
                writer.RenderBeginTag(HtmlTextWriterTag.Div);

                writer.WithAttr(HtmlTextWriterAttribute.Id, Id)
                    .Tag(HtmlTextWriterTag.Div, () => writer
                        .Css(HtmlTextWriterStyle.TextAlign, "center")
                        .Css(HtmlTextWriterStyle.BackgroundColor, Colors.TestBorderColor)
                        .Css("padding", "20px")
                        .Css("margin", "0")
                        .CssShadow("0 0 20px -5px black")
                        .Tag(HtmlTextWriterTag.H2, () => writer
                            .Text($"{nunitGoTest.Name}. Result: ")
                            .Css("padding", "10px")
                            .Css(HtmlTextWriterStyle.BackgroundColor, ResultColor)
                            .Tag(HtmlTextWriterTag.Span, nunitGoTest.Result))
                        .Css("float", "right")
                        .Css("padding", "10px")
                        .Tag(HtmlTextWriterTag.Div, () => writer
                            .DangerButton("Back", "./../../" + Output.Files.TestListFile))
                        .Css("table-layout", "fixed")
                        .Css("word-break", "break-all")
                        .Css(HtmlTextWriterStyle.Width, "100%")
                        .Css(HtmlTextWriterStyle.BackgroundColor, Colors.BodyBackground)
                        .Css("border-spacing", "0")
                        .CssShadow("0 0 20px 0 " + Colors.TestBorderColor)
                        .Tag(HtmlTextWriterTag.Table, () => writer
                            .Css(HtmlTextWriterStyle.Width, "50%")
                            .Tag(HtmlTextWriterTag.Col)
                            .Css(HtmlTextWriterStyle.Width, "50%")
                            .Tag(HtmlTextWriterTag.Col)
                            .Tag(HtmlTextWriterTag.Tr, () => writer
                                .Css(HtmlTextWriterStyle.Width, "50%")
                                .Css(HtmlTextWriterStyle.BackgroundColor, Colors.White)
                                .Tag(HtmlTextWriterTag.Td, () => writer
                                    .AddTestResult(nunitGoTest))
                                .Css(HtmlTextWriterStyle.Width, "50%")
                                .Css(HtmlTextWriterStyle.BackgroundColor, Colors.White)
                                .Tag(HtmlTextWriterTag.Td, () => writer
                                    .AddTestHistory(nunitGoTest))
                            ))
                        .WithAttr(HtmlTextWriterAttribute.Id, "tabs-container")
                        .Tag(HtmlTextWriterTag.Div, () => writer
                            .WithAttr(HtmlTextWriterAttribute.Class, "tabs-menu")
                            .Tag(HtmlTextWriterTag.Ul, () => writer
                                .WithAttr(HtmlTextWriterAttribute.Class, "current")
                                .Tag(HtmlTextWriterTag.Li, () => writer
                                    .WithAttr(HtmlTextWriterAttribute.Href, "#test-screenshots-href")
                                    .Tag(HtmlTextWriterTag.A, "Screenshots"))
                                .Tag(HtmlTextWriterTag.Li, () => writer
                                    .WithAttr(HtmlTextWriterAttribute.Href, "#test-failure-href")
                                    .Tag(HtmlTextWriterTag.A, "Failure"))
                                .Tag(HtmlTextWriterTag.Li, () => writer
                                    .WithAttr(HtmlTextWriterAttribute.Href, "#test-environment-href")
                                    .Tag(HtmlTextWriterTag.A, "Test environment"))
                                .Tag(HtmlTextWriterTag.Li, () => writer
                                    .WithAttr(HtmlTextWriterAttribute.Href, "#test-output-href")
                                    .Tag(HtmlTextWriterTag.A, "Output"))
                                .Tag(HtmlTextWriterTag.Li, () => writer
                                    .WithAttr(HtmlTextWriterAttribute.Href, "#test-events-href")
                                    .Tag(HtmlTextWriterTag.A, "Test events"))
                            )
                            .WithAttr(HtmlTextWriterAttribute.Class, "test-tab")
                            .Tag(HtmlTextWriterTag.Div, () => writer
                                .WithAttr(HtmlTextWriterAttribute.Id, "test-screenshots-href")
                                .WithAttr(HtmlTextWriterAttribute.Class, "tab-content")
                                .Tag(HtmlTextWriterTag.Div, () => writer
                                    .AddScreenshots(nunitGoTest))
                                .WithAttr(HtmlTextWriterAttribute.Id, "test-failure-href")
                                .WithAttr(HtmlTextWriterAttribute.Class, "tab-content")
                                .Tag(HtmlTextWriterTag.Div, () => writer
                                    .AddFailure(nunitGoTest))
                                .WithAttr(HtmlTextWriterAttribute.Id, "test-environment-href")
                                .WithAttr(HtmlTextWriterAttribute.Class, "tab-content")
                                .Tag(HtmlTextWriterTag.Div, () => writer
                                    .AddEnvironment())
                                .WithAttr(HtmlTextWriterAttribute.Id, "test-output-href")
                                .WithAttr(HtmlTextWriterAttribute.Class, "tab-content")
                                .Tag(HtmlTextWriterTag.Div, () => writer
                                    .AddOutput(nunitGoTest, testOutput))
                                .WithAttr(HtmlTextWriterAttribute.Id, "test-events-href")
                                .WithAttr(HtmlTextWriterAttribute.Class, "tab-content")
                                .Tag(HtmlTextWriterTag.Div, () => writer
                                    .AddTestEvents(nunitGoTest)))
                        )
                    );

                writer.RenderEndTag(); //DIV
            }

            HtmlCode = strWr.ToString();
        }