private void RunClass() { foreach (var method in classNode.GetChildrenOfType <MethodNode>()) { method.ResetTestState(); } PlayModeTestRunner.RunTestByDoubleClick( PlayModeTestRunner.SpecificTestType.Class, classNode); }
private void InitNodeView() { var rootView = new RootView(rootNode, selectedNode); rootNode.SetView(rootView); foreach (var classNode in rootNode.GetChildrenOfType <ClassNode>()) { var view = new ClassNodeView(classNode, selectedNode, currentPlayingTest); classNode.SetView(view); } foreach (var methodNode in AllMethodNodes) { var view = new MethodNodeView(methodNode, selectedNode, currentPlayingTest); methodNode.SetView(view); } }
private void Init() { if (rootNode == null) { rootNode = PlayModeTestRunner.TestsRootNode; if (rootNode == null) { return; } currentPlayingTest = PlayModeTestRunner.CurrentPlayingMethodNode; rootNode.StateUpdated += CalculateAllTestsResults; AllMethodNodes = rootNode.GetChildrenOfType <MethodNode>(); string oldFilterValue = String.Empty; if (filter != null) { oldFilterValue = filter.FilterString; } filter = new Filter(AllMethodNodes); selectedNode = new SelectedNode(rootNode); InitNodeView(); filter.UpdateFilter(oldFilterValue); typesReordableList = new ReorderableList(PlayModeTestRunner.BaseTypes, null, false, true, true, true); typesReordableList.drawHeaderCallback = rect => { EditorGUI.LabelField(rect, "Base classes"); }; typesReordableList.elementHeightCallback += index => EditorGUIUtility.singleLineHeight * 1.5f; typesReordableList.drawElementBackgroundCallback = (rect, index, active, focused) => { const int offset = 2; var oldColor = GUI.color; if (active) { GUI.color = new Color(255f / 255f, 200f / 255f, 200f / 255f); } ; GUI.Box(new Rect(rect.x + offset * 2, rect.y + offset / 2, rect.width - offset * 4, rect.height - offset), ""); GUI.color = oldColor; }; typesReordableList.onAddDropdownCallback = (Rect buttonRect, ReorderableList list) => { if (window != null) { window.Close(); } window = CreateInstance <AddBaseClassWindow>(); window.Result += s => { if (!string.IsNullOrEmpty(s)) { if (!list.list.Contains(s)) { list.list.Add(s); } } }; window.ShowAuxWindow(); }; typesReordableList.onChangedCallback += list => { //todo recalculate tests SetSerializedTestsDirty(); editorUpdateEnabledForFrames = 10; }; typesReordableList.drawElementCallback += (rect, index, active, focused) => { if (PlayModeTestRunner.BaseTypes.Count == 0) { rootNode = null; return; } var type = PlayModeTestRunner.BaseTypes[index]; rect.y += 3; GUI.Label(rect, type); }; } }