Exemplo n.º 1
0
    private void OnFocus()
    {
        if (EditorConfiguration == null)
        {
            InitEditorConfiguration();
        }

        if (failIcon == null)
        {
            var findIcon = UnityEditor.AssetDatabase.FindAssets("16px-indicator-fail");
            failIcon = UnityEditor.AssetDatabase.LoadAssetAtPath <UnityEngine.Texture2D>(UnityEditor.AssetDatabase.GUIDToAssetPath(findIcon[0]));
        }
        if (passIcon == null)
        {
            var findIcon = UnityEditor.AssetDatabase.FindAssets("16px-indicator-pass");
            passIcon = UnityEditor.AssetDatabase.LoadAssetAtPath <UnityEngine.Texture2D>(UnityEditor.AssetDatabase.GUIDToAssetPath(findIcon[0]));
        }


        GetListOfSceneFromEditor();
        AltUnityTestRunner.SetUpListTest();
    }
Exemplo n.º 2
0
    private void DrawGUI()
    {
        var screenWidth = UnityEditor.EditorGUIUtility.currentViewWidth;

        //----------------------Left Panel------------
        UnityEditor.EditorGUILayout.BeginHorizontal();
        var leftSide = (screenWidth / 3) * 2;

        _scrollPosition = UnityEditor.EditorGUILayout.BeginScrollView(_scrollPosition, false, false, UnityEngine.GUILayout.MinWidth(leftSide));

        DisplayTestGui(EditorConfiguration.MyTests);

        UnityEditor.EditorGUILayout.Separator();

        DisplayBuildSettings();

        UnityEditor.EditorGUILayout.Separator();

        DisplayAltUnityServerSettings();

        UnityEditor.EditorGUILayout.Separator();

        DisplayPortForwarding();


        UnityEditor.EditorGUILayout.EndScrollView();

        //-------------------Right Panel--------------
        var rightSide = (screenWidth / 3);

        UnityEditor.EditorGUILayout.BeginVertical();

        UnityEditor.EditorGUILayout.LabelField("Platform", UnityEditor.EditorStyles.boldLabel);

        UnityEditor.EditorGUILayout.BeginHorizontal();
        EditorConfiguration.platform = (Platform)UnityEngine.GUILayout.SelectionGrid((int)EditorConfiguration.platform, System.Enum.GetNames(typeof(Platform)), System.Enum.GetNames(typeof(Platform)).Length, UnityEditor.EditorStyles.radioButton);

        UnityEditor.EditorGUILayout.EndHorizontal();
        UnityEditor.EditorGUILayout.Separator();
        UnityEditor.EditorGUILayout.Separator();
        UnityEditor.EditorGUILayout.Separator();

        UnityEditor.EditorGUILayout.LabelField("Tests", UnityEditor.EditorStyles.boldLabel);

        if (UnityEngine.GUILayout.Button("Run All Tests"))
        {
            if (EditorConfiguration.platform == Platform.Editor)
            {
                System.Threading.Thread testThread = new System.Threading.Thread(() => AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunAllTest));
                testThread.Start();
            }
            else
            {
                AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunAllTest);
            }
        }
        if (UnityEngine.GUILayout.Button("Run Selected Tests"))
        {
            if (EditorConfiguration.platform == Platform.Editor)
            {
                System.Threading.Thread testThread = new System.Threading.Thread(() => AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunSelectedTest));
                testThread.Start();
            }
            else
            {
                AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunSelectedTest);
            }
        }
        if (UnityEngine.GUILayout.Button("Run Failed Tests"))
        {
            if (EditorConfiguration.platform == Platform.Editor)
            {
                System.Threading.Thread testThread = new System.Threading.Thread(() => AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunFailedTest));
                testThread.Start();
            }
            else
            {
                AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunFailedTest);
            }
        }

        UnityEditor.EditorGUILayout.Separator();
        UnityEditor.EditorGUILayout.Separator();
        UnityEditor.EditorGUILayout.Separator();
        if (AltUnityBuilder.built)
        {
            var found = false;

            UnityEngine.SceneManagement.Scene scene = UnityEditor.SceneManagement.EditorSceneManager.OpenScene(AltUnityBuilder.GetFirstSceneWhichWillBeBuilt());
            if (scene.path.Equals(AltUnityBuilder.GetFirstSceneWhichWillBeBuilt()))
            {
                if (scene.GetRootGameObjects()
                    .Any(gameObject => gameObject.name.Equals("AltUnityRunnerPrefab")))
                {
                    UnityEngine.SceneManagement.SceneManager.SetActiveScene(scene);
                    var altunityRunner = scene.GetRootGameObjects()
                                         .First(a => a.name.Equals("AltUnityRunnerPrefab"));
                    DestroyAltUnityRunner(altunityRunner);
                    found = true;
                }

                if (found == false)
                {
                    AltUnityBuilder.built = false;
                }
            }
        }

        UnityEditor.EditorGUILayout.LabelField("Build", UnityEditor.EditorStyles.boldLabel);
        if (EditorConfiguration.platform != Platform.Editor)
        {
            if (UnityEngine.GUILayout.Button("Build Only"))
            {
                if (EditorConfiguration.platform == Platform.Android)
                {
                    AltUnityBuilder.BuildAndroidFromUI(autoRun: false);
                }
#if UNITY_EDITOR_OSX
                else if (EditorConfiguration.platform == Platform.iOS)
                {
                    AltUnityBuilder.BuildiOSFromUI(autoRun: false);
                }
#endif
                else
                {
                    RunInEditor();
                }
            }
        }
        else
        {
            UnityEditor.EditorGUI.BeginDisabledGroup(true);
            UnityEngine.GUILayout.Button("Build Only");
            UnityEditor.EditorGUI.EndDisabledGroup();
        }

        UnityEditor.EditorGUILayout.Separator();
        UnityEditor.EditorGUILayout.Separator();
        UnityEditor.EditorGUILayout.Separator();

        UnityEditor.EditorGUILayout.LabelField("Run", UnityEditor.EditorStyles.boldLabel);
        if (UnityEngine.GUILayout.Button("Play in Editor"))
        {
            EditorConfiguration.platform = Platform.Editor;
            RunInEditor();
        }

        if (EditorConfiguration.platform != Platform.Editor)
        {
            if (UnityEngine.GUILayout.Button("Build & Run on Device"))
            {
                if (EditorConfiguration.platform == Platform.Android)
                {
                    AltUnityBuilder.BuildAndroidFromUI(autoRun: true);
                }
#if UNITY_EDITOR_OSX
                else if (EditorConfiguration.platform == Platform.iOS)
                {
                    AltUnityBuilder.BuildiOSFromUI(autoRun: true);
                }
#endif
            }
        }
        else
        {
            UnityEditor.EditorGUI.BeginDisabledGroup(true);
            UnityEngine.GUILayout.Button("Build & Run on Device");
            UnityEditor.EditorGUI.EndDisabledGroup();
        }

        UnityEditor.EditorGUILayout.LabelField("", UnityEngine.GUILayout.ExpandHeight(true));
        //Status test

        _scrollPositonTestResult = UnityEditor.EditorGUILayout.BeginScrollView(_scrollPositonTestResult, UnityEngine.GUI.skin.textArea);
        if (selectedTest != -1)
        {
            UnityEditor.EditorGUILayout.LabelField("Test Result for:  " + EditorConfiguration.MyTests[selectedTest].TestName, UnityEditor.EditorStyles.boldLabel);
            UnityEditor.EditorGUILayout.Separator();
            UnityEditor.EditorGUILayout.LabelField("Message:");
            if (EditorConfiguration.MyTests[selectedTest].TestResultMessage == null)
            {
                UnityEngine.GUILayout.TextArea("No informartion about this test available.\nPlease rerun the test.",
                                               UnityEngine.GUILayout.MaxHeight(75));
            }
            else
            {
                string text       = EditorConfiguration.MyTests[selectedTest].TestResultMessage;
                int    lineContor = 1;
                int    textLength = (int)rightSide / 7;
                if (text.Length > textLength)
                {
                    var splited = text.Split(' ');
                    text = "";
                    foreach (var word in splited)
                    {
                        text = text + " " + word;
                        if (text.Length > textLength * lineContor)
                        {
                            lineContor++;
                            text = text + "\n";
                        }
                    }
                }

                UnityEditor.EditorGUILayout.TextArea(text);
            }
        }
        else
        {
            UnityEditor.EditorGUILayout.LabelField("No test selected");
        }
        UnityEditor.EditorGUILayout.EndScrollView();
        UnityEditor.EditorGUILayout.EndVertical();
        UnityEditor.EditorGUILayout.EndHorizontal();
    }