コード例 #1
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);
 }
コード例 #2
0
        public static void GenerateTestPage(this TestInformations test, string fullPath, string testOutput, string chartFile)
        {
            try
            {
                const string script   = @"
					$(document).ready(function() {
						$("".tabs-menu a"").click(function(event) {
							event.preventDefault();
							$(this).parent().addClass(""current"");
							$(this).parent().siblings().removeClass(""current"");
							var tab = $(this).attr(""href"");
							$("".tab-content"").not(tab).css(""display"", ""none"");
							$(tab).fadeIn();
						});
					});
				"                ;
                var          htmlTest = new NunitTestHtml(test, testOutput);
                var          page     = new HtmlPage("Test page")
                {
                    PageStylePaths = new List <string>
                    {
                        "./../../" + Output.Files.ReportStyleFile,
                        "./../../" + Output.Files.PrimerStyleFile
                    },
                    PageScriptString = script,
                    ScriptFilePaths  = new List <string>
                    {
                        "./../../" + Output.Files.JQueryScriptFile,
                        Output.Files.HighstockScriptFile,
                        chartFile
                    },
                    PageBodyCode = htmlTest.HtmlCode
                };
                page.SavePage(fullPath);
            }
            catch (Exception ex)
            {
                InternalLogs.Exception(ex, "Exception while generating test html page");
            }
        }
コード例 #3
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);
 }
コード例 #4
0
ファイル: Tree.cs プロジェクト: TomDrJones/NUnitGo
        private void BuildTreeFromSuites(HtmlTextWriter writer, IEnumerable<NunitGoSuite> suites)
        {
            foreach (var suite in suites)
            {
                var tests = suite.Tests;
                var id = GetSuiteId();
                var allSuiteTests = suite.GetTests();
                var count = allSuiteTests.Count();
                var passedCount = allSuiteTests.Count(x => x.IsSuccess());
                var labelName = suite.Name + " (Tests: " + passedCount + @"/" + count + ")";
                writer.OpenTreeItem(labelName, id, "110%", suite.Tests.Count.Equals(0));
                writer.RenderBeginTag(HtmlTextWriterTag.Ul);

                foreach (var nunitGoTest in tests)
                {
                    var testId = nunitGoTest.Guid.ToString();
                    var htmlTest = new NunitTestHtml(nunitGoTest);
                    var buttonText = nunitGoTest.Name
                                     + " (" + nunitGoTest.DateTimeStart.ToString("dd.MM.yy HH:mm:ss") + " - " +
                                     nunitGoTest.DateTimeFinish.ToString("dd.MM.yy HH:mm:ss") + ")";
                    var openButton = new OpenButton(buttonText, nunitGoTest.TestHrefRelative,  htmlTest.BackgroundColor);

                    writer.AddAttribute(HtmlTextWriterAttribute.Id, testId);
                    writer.RenderBeginTag(HtmlTextWriterTag.Li);
                    writer.AddAttribute(HtmlTextWriterAttribute.Title, nunitGoTest.Name);
                    writer.RenderBeginTag(HtmlTextWriterTag.A);
                    writer.Write(openButton.ButtonHtml);
                    writer.RenderEndTag(); //A
                    writer.RenderEndTag(); //LI

                }
                if (suite.Suites.Any())
                {
                    BuildTreeFromSuites(writer, suite.Suites);
                }
                writer.RenderEndTag(); //UL
                writer.RenderEndTag(); //LI
                writer.RenderEndTag(); //UL
            }
        }
コード例 #5
0
        public static string GetMailBody(NunitGoTest nunitGoTest, bool addLinks,
                                         bool isEventEmail = false, string eventName = "", TestEvent previousRunEvent = null)
        {
            var strWr = new StringWriter();

            using (var writer = new HtmlTextWriter(strWr))
            {
                writer.Write("<!DOCTYPE html>");
                writer.Write(Environment.NewLine);
                writer.RenderBeginTag(HtmlTextWriterTag.Head);
                writer.Tag(HtmlTextWriterTag.Meta, new Dictionary <string, string>
                {
                    { "http-equiv", "X-UA-Compatible" },
                    { "content", @"IE=edge" },
                    { "charset", "utf-8" }
                });
                writer.Tag(HtmlTextWriterTag.Title, "NUnitGo Email");
                writer.Tag(HtmlTextWriterTag.Style, new Dictionary <HtmlTextWriterAttribute, string>
                {
                    { HtmlTextWriterAttribute.Type, @"text/css" }
                });
                writer.Tag(HtmlTextWriterTag.Link, new Dictionary <HtmlTextWriterAttribute, string>
                {
                    { HtmlTextWriterAttribute.Rel, @"stylesheet" },
                    { HtmlTextWriterAttribute.Type, @"text/css" }
                });
                writer.RenderEndTag(); //HEAD

                writer.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, Colors.White);
                writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "10px");
                writer.AddStyleAttribute("border", "10px solid " + Colors.TestBorderColor);
                writer.AddStyleAttribute(HtmlTextWriterStyle.Margin, "0px");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
                writer.AddStyleAttribute(HtmlTextWriterStyle.FontFamily, "Tahoma,Verdana,Segoe,sans-serif");
                writer.RenderBeginTag(HtmlTextWriterTag.Body);

                writer.AddStyleAttribute("box-sizing", "border-box");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Overflow, "auto");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Top, "0%");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "10px");
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "test-window");
                writer.AddAttribute(HtmlTextWriterAttribute.Title, "Test");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);

                writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "10px");
                writer.AddAttribute(HtmlTextWriterAttribute.Id, nunitGoTest.Guid.ToString());
                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

                if (isEventEmail && previousRunEvent != null)
                {
                    var currentEvent = nunitGoTest.Events.First(x => x.Name.Equals(eventName));
                    writer.RenderBeginTag(HtmlTextWriterTag.P);
                    writer.AddTag(HtmlTextWriterTag.B, "Event name: ");
                    writer.Write(currentEvent.Name);
                    writer.RenderEndTag(); //P
                    writer.RenderBeginTag(HtmlTextWriterTag.P);
                    writer.AddTag(HtmlTextWriterTag.B, string.Format("Current duration (event finished at {0}): ", currentEvent.Finished));
                    writer.Write(TimeSpan.FromSeconds(currentEvent.Duration).ToString(@"hh\:mm\:ss\:fff"));
                    writer.RenderEndTag(); //P
                    writer.RenderBeginTag(HtmlTextWriterTag.P);
                    writer.AddTag(HtmlTextWriterTag.B, string.Format("Previous duration (event finished at {0}): ", previousRunEvent.Finished));
                    writer.Write(TimeSpan.FromSeconds(previousRunEvent.Duration).ToString(@"hh\:mm\:ss\:fff"));
                    writer.RenderEndTag(); //P
                    writer.RenderBeginTag(HtmlTextWriterTag.P);
                    writer.AddTag(HtmlTextWriterTag.B, "Difference: ");
                    writer.Write(TimeSpan.FromSeconds(currentEvent.Duration - previousRunEvent.Duration).ToString(@"hh\:mm\:ss\:fff"));
                    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.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.RenderBeginTag(HtmlTextWriterTag.P);
                writer.AddTag(HtmlTextWriterTag.B, "Screenshots: ");
                writer.Write(nunitGoTest.Screenshots.Count);
                writer.RenderEndTag(); //P

                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.RenderBeginTag(HtmlTextWriterTag.Div);
                    writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "inherited");
                    writer.AddAttribute(HtmlTextWriterAttribute.Src, @"cid:" + screenshot.Name);
                    writer.AddAttribute(HtmlTextWriterAttribute.Alt, screenshot.Name);
                    writer.RenderBeginTag(HtmlTextWriterTag.Img);
                    writer.RenderEndTag(); //IMG
                    writer.RenderEndTag(); //DIV
                }

                if (!nunitGoTest.IsSuccess())
                {
                    writer.RenderBeginTag(HtmlTextWriterTag.P);
                    writer.AddTag(HtmlTextWriterTag.B, "Stack trace: ");
                    writer.Write(NunitTestHtml.GenerateTxtView(nunitGoTest.TestStackTrace));
                    writer.RenderEndTag(); //P
                    writer.RenderBeginTag(HtmlTextWriterTag.P);
                    writer.AddTag(HtmlTextWriterTag.B, "Message: ");
                    writer.Write(NunitTestHtml.GenerateTxtView(nunitGoTest.TestMessage));
                    writer.RenderEndTag(); //P
                }

                if (addLinks)
                {
                    writer.RenderBeginTag(HtmlTextWriterTag.P);
                    writer.AddTag(HtmlTextWriterTag.B, "Test page: ");
                    writer.AddStyleAttribute("background", Colors.OpenLogsButtonBackground);
                    writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
                    writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "black");
                    writer.AddStyleAttribute(HtmlTextWriterStyle.TextDecoration, "none !important");
                    writer.AddAttribute(HtmlTextWriterAttribute.Href, nunitGoTest.TestHrefAbsolute);
                    writer.RenderBeginTag(HtmlTextWriterTag.A);
                    writer.Write(Environment.NewLine + "View on site");
                    writer.RenderEndTag(); //A
                    writer.RenderEndTag(); //P
                }

                writer.RenderEndTag(); //DIV
                writer.RenderEndTag(); //DIV

                writer.RenderEndTag(); //BODY

                writer.Write(Environment.NewLine);
                writer.Write("</html>");
                writer.Write(Environment.NewLine);
            }

            return(strWr.ToString());
        }