1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using UnityEditor.TestTools.TestRunner.Api;
- using UnityEditor.TestTools.TestRunner.CommandLineTest;
- using UnityEditor.TestTools.TestRunner.GUI;
- using UnityEngine;
-
- namespace UnityEditor.TestTools.TestRunner
- {
- internal class RerunCallback : ScriptableObject, ICallbacks
- {
- public static bool useMockRunFilter = false;
- public static UITestRunnerFilter mockRunFilter = null;
-
- public void RunFinished(ITestResultAdaptor result)
- {
- if (RerunCallbackData.instance.runFilters == null || RerunCallbackData.instance.runFilters.Length == 0)
- RerunCallbackData.instance.runFilters = new[] {new UITestRunnerFilter()};
-
- var runFilter = RerunCallbackData.instance.runFilters[0];
-
- if (useMockRunFilter)
- {
- runFilter = mockRunFilter;
- }
-
- runFilter.testRepetitions--;
- if (runFilter.testRepetitions <= 0 || result.TestStatus != TestStatus.Passed)
- {
- ExitCallbacks.preventExit = false;
- return;
- }
-
- ExitCallbacks.preventExit = true;
- if (EditorApplication.isPlaying)
- {
- EditorApplication.playModeStateChanged += WaitForExitPlaymode;
- return;
- }
-
- if (!useMockRunFilter)
- {
- ExecuteTestRunnerAPI();
- }
- }
-
- private static void WaitForExitPlaymode(PlayModeStateChange state)
- {
- if (state == PlayModeStateChange.EnteredEditMode)
- {
- ExecuteTestRunnerAPI();
- }
- }
-
- private static void ExecuteTestRunnerAPI()
- {
- var runFilter = RerunCallbackData.instance.runFilters[0];
- var testMode = RerunCallbackData.instance.testMode;
-
- var testRunnerApi = ScriptableObject.CreateInstance<TestRunnerApi>();
- testRunnerApi.Execute(new Api.ExecutionSettings()
- {
- filters = new[]
- {
- new Filter()
- {
- categoryNames = runFilter.categoryNames,
- groupNames = runFilter.groupNames,
- testMode = testMode,
- testNames = runFilter.testNames
- }
- }
- });
- }
-
- public void TestStarted(ITestAdaptor test)
- {
- }
-
- public void TestFinished(ITestResultAdaptor result)
- {
- }
-
- public void RunStarted(ITestAdaptor testsToRun)
- {
- }
- }
- }
|