public static void BuildTemporaryReportForSingleConsoleFailure(string testMethodName) { #if UNITY_EDITOR SetCompleteReport(testMethodName); FileBroker.CreateFileAtPath(string.Format("{0}SingleTestAsReportTemp.html", FileBroker.RESOURCES_DIRECTORY), htmlBody.ToString()); #endif }
public static void GenerateFullCodeSnippet() { StringBuilder snippet = new StringBuilder(); snippet.AppendLine("<style> .code_display { border: 1px solid black; border-radius: 6px; padding: 20px; margin: 20px; } .code_line { padding-bottom: 5px; } .object_declaration { color: #0f93b5; font-weight: bold; } .string_text { color: #cc7a00; } .title { padding: 20px; } .value { color: #008080; } .variable { color: #537da5; } </style>"); snippet.AppendLine("<h2 class='title'>GENERATED CODE</h2>"); snippet.AppendLine("<h4 class='title'>Using</h2>"); snippet.AppendLine("<div id='using_statements' class='code_display'>"); snippet.AppendLine("<div class='code_line'><span class='object_declaration'>using</span> System;</div>"); snippet.AppendLine("<div class='code_line'><span class='object_declaration'>using</span> UnityEngine;</div>"); if (AutomationRecorder.RecordedActions.FindAll(x => x.Action == ActableTypes.Input || x.Action == ActableTypes.Scroll).Any()) { snippet.AppendLine("<div class='code_line'><span class='object_declaration'>using</span> UnityEngine.UI;</div>"); } snippet.AppendLine("</div>"); snippet.AppendLine("<h4 class='title'>Test Code</h2>"); snippet.AppendLine("<div id='code_display' class='code_display'>"); snippet.AppendLine("<div class='code_line'><span class='object_declaration'>GameObject</span> <span class='variable'>parentObject</span> = <span class='value'>null</span>;</div>"); bool setCurrentObjectValue = true; bool setMiddleLevelObjectValue = true; for (int x = 0; x < AutomationRecorder.RecordedActions.Count; x++) { snippet.AppendLine("<div class='code_line'>"); bool anyAssertions = AutomationRecorder.RecordedActions[x].Assertions.Any(); if (anyAssertions && setCurrentObjectValue) { setCurrentObjectValue = false; snippet.AppendLine("<div class='code_line'><span class='object_declaration'>GameObject</span> <span class='variable'>currentObject</span> = <span class='value'>null</span>;</div>"); snippet.AppendLine("</div><div class='code_line'>"); } if (setMiddleLevelObjectValue && AutomationRecorder.RecordedActions[x].ParentNames.Count > MAX_NUM_PARENTNAMES_BEFORE_DRILLDOWN) { //Searches for a parent level object closer to the object attempting to be found, to decrease finding of wrong object with identical name. setMiddleLevelObjectValue = false; snippet.AppendLine("<div class='code_line'><span class='object_declaration'>GameObject</span> <span class='variable'>middleLevelObject</span> = <span class='value'>null</span>;</div>"); snippet.AppendLine("</div><div class='code_line'>"); } string assert = RenderAssertions(true, x); switch (AutomationRecorder.RecordedActions[x].Action) { case ActableTypes.Clickable: snippet.AppendLine(GenerateClickCodeStub(AutomationRecorder.RecordedActions[x], anyAssertions, assert)); break; case ActableTypes.Input: snippet.AppendLine(GenerateInputCodeStub(AutomationRecorder.RecordedActions[x], anyAssertions, assert)); break; case ActableTypes.Scroll: snippet.AppendLine(GenerateScrollCodeStub(AutomationRecorder.RecordedActions[x], anyAssertions, assert)); break; case ActableTypes.Draggable: //TODO break; case ActableTypes.KeyDown: //TODO break; case ActableTypes.Screenshot: snippet.AppendLine(string.Format("<div class='code_line'><span class='value'><span class='value'>yield return StartCoroutine</span></span>(<span class='object_declaration'>Q</span>.driver.TakeTestScreenshot(\"{0}\"));</div>", AutomationRecorder.RecordedActions[x].Name)); break; case ActableTypes.Wait: snippet.AppendLine(string.Format("<div class='code_line'><span class='value'><span class='value'>yield return StartCoroutine</span></span>(<span class='object_declaration'>Q</span>.driver.WaitRealTime({0}f));</div>", AutomationRecorder.RecordedActions[x].Duration.ToString())); break; } snippet.AppendLine("</div>"); snippet.AppendLine(RenderAssertions(false, x)); } snippet.AppendLine("</div>"); FileBroker.CreateFileAtPath(string.Format("{0}RecordedTestCodeGen.html", FileBroker.RESOURCES_DIRECTORY), snippet.ToString()); }