public IEnumerator Start() { // Skip a frame before, to let tests register themselves, etc. yield return(0); if ((captureFramerates == null) || (captureFramerates.Length == 0)) { captureFramerates = new int[] { 0 } } ; foreach (int fps in captureFramerates) { string variant = null; if (fps != 0) { variant = " [@" + fps + " fps]"; } foreach (UnityTest suite in testSuites) { suite.captureFramerate = fps; SuiteResults current = new SuiteResults(suite.GetType(), variant, suite.results); aggregateResults.Add(current); yield return(StartCoroutine(suite.TestAll())); suite.results = new ArrayList(); } } if (iterateScenes) { DontDestroyOnLoad(this); if (Application.loadedLevel < (Application.levelCount - 1)) { Application.LoadLevel(Application.loadedLevel + 1); } } }
public IEnumerator Start() { // Skip a frame before, to let tests register themselves, etc. yield return 0; if((captureFramerates == null) || (captureFramerates.Length == 0)) captureFramerates = new int[] { 0 }; foreach(int fps in captureFramerates) { string variant = null; if(fps != 0) variant = " [@" + fps + " fps]"; foreach(UnityTest suite in testSuites) { suite.captureFramerate = fps; SuiteResults current = new SuiteResults(suite.GetType(), variant, suite.results); aggregateResults.Add(current); yield return StartCoroutine(suite.TestAll()); suite.results = new ArrayList(); } } if(iterateScenes) { DontDestroyOnLoad(this); if(Application.loadedLevel < (Application.levelCount - 1)) { Application.LoadLevel(Application.loadedLevel + 1); } } }
public static TestResultsViewState ShowAggregateResults(TestResultsViewState state, ArrayList aggregateResults) { if (state.labels.Length != aggregateResults.Count) { state.labels = new string[aggregateResults.Count]; for (int i = 0; i < state.labels.Length; i++) { SuiteResults sr = ((SuiteResults)(aggregateResults[i])); state.labels[i] = sr.suite.Name + ((sr.variant != null) ? sr.variant : ""); } } GUILayout.BeginHorizontal(GUITools.ConstrainedBox); GUILayout.BeginVertical(); GUITools.TextColorState tcs; state.outerScrollPosition = GUILayout.BeginScrollView(state.outerScrollPosition, false, false, GUILayout.Width(180)); if ((state.labels.Length > 0) && (state.selectedIndex >= 0)) { for (int i = 0; i < state.labels.Length; i++) { SuiteResults sr = ((SuiteResults)(aggregateResults[i])); TestResultStyle style = TestResultStyle.Pass; // TODO: UGH! This SUCKS! We shouldn't have to iterate every // result multiple times every frame!!!! bool isFailed = false; foreach (TestResult r in sr.results) { // If ANY result is ongoing, the result is Ongoing. // If there's no ongoing test AND there is ANY failed test, the // result is Failed. // Otherwise, the result is Passed. if (r.IsRunning) { style = TestResultStyle.Ongoing; if (Application.isPlaying) { state.selectedIndex = i; } break; } else if (r.Passed) { if (!isFailed) { style = TestResultStyle.Pass; } } else { style = TestResultStyle.Fail; isFailed = true; continue; } } tcs = GUITools.SetTextColor(style.color, "button"); if (GUILayout.Toggle((state.selectedIndex == i), state.labels[i], "button", GUILayout.Width(150))) { state.selectedIndex = i; } GUITools.RestoreTextColor(tcs); } } GUILayout.EndScrollView(); GUILayout.EndVertical(); GUILayout.BeginVertical(); if (state.labels.Length > 0) { if (state.selectedIndex >= state.labels.Length) { state.selectedIndex = state.labels.Length - 1; } GUILayout.Label(state.labels[state.selectedIndex]); if ((state.selectedIndex >= 0) && (aggregateResults.Count > 0)) { state.innerScrollPosition = TestRunnerGUI.ShowSuiteResults(state.innerScrollPosition, ((SuiteResults)(aggregateResults[state.selectedIndex])).results); } } GUILayout.EndVertical(); GUILayout.EndHorizontal(); return(state); }