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(); }
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; }