private void ExecuteAction(PlayerMenuItem item) { var runSettings = new PlayerLauncherTestRunSettings(); runSettings.buildOnly = item.buildOnly; if (runSettings.buildOnly) { runSettings.buildOnlyLocationPath = PickBuildLocation(); if (string.IsNullOrEmpty(runSettings.buildOnlyLocationPath)) { Debug.LogWarning("Aborting, build selection was canceled."); return; } } if (item.filterSelectedTestsOnly) { RunTestsInPlayer(runSettings, SelectedTestsFilter); } else { var filter = new UITestRunnerFilter { categoryNames = m_TestRunnerUIFilter.CategoryFilter }; RunTestsInPlayer(runSettings, filter); } }
public virtual void PrintHeadPanel() { EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); using (new EditorGUI.DisabledScope(IsBusy())) { if (GUILayout.Button(s_GUIRunAllTests, EditorStyles.toolbarButton)) { var filter = new UITestRunnerFilter { categoryNames = m_TestRunnerUIFilter.CategoryFilter }; RunTests(filter); GUIUtility.ExitGUI(); } } using (new EditorGUI.DisabledScope(m_TestListTree == null || !m_TestListTree.HasSelection() || IsBusy())) { if (GUILayout.Button(s_GUIRunSelectedTests, EditorStyles.toolbarButton)) { RunTests(SelectedTestsFilter); GUIUtility.ExitGUI(); } } using (new EditorGUI.DisabledScope(m_TestRunnerUIFilter.FailedCount == 0 || IsBusy())) { if (GUILayout.Button(s_GUIRerunFailedTests, EditorStyles.toolbarButton)) { var failedTestnames = new List <string>(); foreach (var result in newResultList) { if (result.isSuite) { continue; } if (result.resultStatus == TestRunnerResult.ResultStatus.Failed || result.resultStatus == TestRunnerResult.ResultStatus.Inconclusive) { failedTestnames.Add(result.fullName); } } RunTests(new UITestRunnerFilter() { testNames = failedTestnames.ToArray(), categoryNames = m_TestRunnerUIFilter.CategoryFilter }); GUIUtility.ExitGUI(); } } using (new EditorGUI.DisabledScope(IsBusy())) { if (GUILayout.Button(s_GUIClearResults, EditorStyles.toolbarButton)) { foreach (var result in newResultList) { result.Clear(); } m_TestRunnerUIFilter.UpdateCounters(newResultList); Reload(); GUIUtility.ExitGUI(); } } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); }
private UITestRunnerFilter[] GetSelectedTestsAsFilter(IEnumerable <int> selectedIDs) { var namesToRun = new List <string>(); var assembliesForNamesToRun = new List <string>(); var exactNamesToRun = new List <string>(); var assembliesToRun = new List <string>(); foreach (var lineId in selectedIDs) { var line = m_TestListTree.FindItem(lineId); if (line is TestTreeViewItem) { var testLine = line as TestTreeViewItem; if (testLine.IsGroupNode && !testLine.FullName.Contains("+")) { if (testLine.parent != null && testLine.parent.displayName == "Invisible Root Item") { //Root node selected. Use an empty TestRunnerFilter to run every test return(new[] { new UITestRunnerFilter() }); } if (testLine.FullName.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) { assembliesToRun.Add(UITestRunnerFilter.AssemblyNameFromPath(testLine.FullName)); } else { namesToRun.Add($"^{Regex.Escape(testLine.FullName)}$"); var assembly = UITestRunnerFilter.AssemblyNameFromPath(testLine.GetAssemblyName()); if (!string.IsNullOrEmpty(assembly) && !assembliesForNamesToRun.Contains(assembly)) { assembliesForNamesToRun.Add(assembly); } } } else { exactNamesToRun.Add(testLine.FullName); } } } var filters = new List <UITestRunnerFilter>(); if (assembliesToRun.Count > 0) { filters.Add(new UITestRunnerFilter() { assemblyNames = assembliesToRun.ToArray() }); } if (namesToRun.Count > 0) { filters.Add(new UITestRunnerFilter() { groupNames = namesToRun.ToArray(), assemblyNames = assembliesForNamesToRun.ToArray() }); } if (exactNamesToRun.Count > 0) { filters.Add(new UITestRunnerFilter() { testNames = exactNamesToRun.ToArray() }); } if (filters.Count == 0) { filters.Add(new UITestRunnerFilter()); } var categories = m_TestRunnerUIFilter.CategoryFilter.ToArray(); if (categories.Length > 0) { foreach (var filter in filters) { filter.categoryNames = categories; } } return(filters.ToArray()); }