public void OnHierarchyChange()
        {
            renderer.OnHierarchyChange(isRunning);

            if (renderer.forceRepaint)
            {
                Repaint();
            }

            if (TestManager.GetAllTestGameObjects().Any())
            {
                TestRunner.GetTestRunner();
            }
        }
Пример #2
0
        public void OnHierarchyChange(bool isRunning)
        {
            if (isRunning ||
                EditorApplication.isPlayingOrWillChangePlaymode)
            {
                return;
            }

            if (addNewGameObjectUnderSelectedTest &&
                Selection.activeGameObject != null)
            {
                var go = Selection.activeGameObject;
                if (selectedTests.Count == 1 &&
                    go.transform.parent == null &&
                    go.GetComponent <TestComponent>() == null &&
                    go.GetComponent <TestRunner>() == null)
                {
                    go.transform.parent = selectedTests.Single().go.transform;
                }
            }

            if (keepTestComponentObjectsOnTop)
            {
                foreach (var test in TestManager.GetAllTestGameObjects())
                {
                    if (test.transform.parent != null)
                    {
                        test.transform.parent = null;
                        Debug.LogWarning("Tests need to be on top of hierarchy.");
                    }
                }
            }

            if (Selection.gameObjects.Count() > 1 &&
                Selection.gameObjects.All(o => o is GameObject && o.GetComponent <TestComponent>()))
            {
                selectedTests.Clear();
                selectedTests.AddRange(Selection.gameObjects.Select(go => testManager.GetResultFor(go)));
                forceRepaint = true;
            }
        }