Exemple #1
0
        void AdvancedSettings()
        {
            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Make reference screenshot instead of comparing:");
            var oldValue = EditorGUILayout.Toggle("", PlayModeTestRunner.ForceMakeReferenceScreenshot);

            if (oldValue != PlayModeTestRunner.ForceMakeReferenceScreenshot)
            {
                PlayModeTestRunner.ForceMakeReferenceScreenshot = oldValue;
                SetSerializedTestsDirty();
            }
            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();

            if (typesReordableList != null)
            {
                typesReordableList.DoLayoutList();
            }

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Update tests on every compilation: ");
            PlayModeTestRunner.UpdateTestsOnEveryCompilation =
                GUILayout.Toggle(PlayModeTestRunner.UpdateTestsOnEveryCompilation, "");

            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            GUI.enabled = !PlayModeTestRunner.UpdateTestsOnEveryCompilation;
            if (GUILayout.Button("Force Update Tests"))
            {
                PlayModeTestRunner.ResetTestRootNode();
                PlayModeTestRunner.SaveTestsData(true);
                rootNode = null;
            }
            GUILayout.Label("Can take several minutes...");
            GUI.enabled = PlayModeTestRunner.UpdateTestsOnEveryCompilation;
            EditorGUILayout.EndHorizontal();
        }
Exemple #2
0
        private void CheckAssetIsDirty()
        {
#if !UNITY_2019_1_OR_NEWER
            if (IsAssetDirtyDelegate == null)
            {
                var methodInfo = typeof(EditorUtility).GetMethod("IsDirty",
                                                                 System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
                var customDelegate = Delegate.CreateDelegate(
                    typeof(IsSerializedAssetDirty), methodInfo, false);
                IsAssetDirtyDelegate = (IsSerializedAssetDirty)customDelegate;
                instanceID           = PlayModeTestRunner.SerializedTests.GetInstanceID();
            }
            isDirty = IsAssetDirtyDelegate.Invoke(instanceID);
#else
            isDirty = EditorUtility.IsDirty(instanceID);
#endif

            if (!PlayModeTestRunner.IsRunning && previousIsDirty && !isDirty)
            {
                PlayModeTestRunner.SaveTestsData(true);
            }
            previousIsDirty = isDirty;
        }