public override IEnumerator Execute(TestJobData testJobData) { var taskInfo = testJobData.taskInfoStack.Peek(); if (taskInfo.taskMode == TestJobData.TaskMode.PredictSteps) { testJobData.taskInfoStack.Pop(); yield break; } var previousStage = testJobData.currentStage; testJobData.currentStage = new TestJobData.StageInfo() { index = previousStage != null ? previousStage.index + 1 : 0, title = m_Title, totalStepsInStage = 1 }; testJobData.currentStep = new TestJobData.StepInfo() { index = 1, title = "Calculating stages" }; testJobData.taskInfoStack.Push(new TestJobData.TaskInfo() { index = taskInfo.index + 1, pc = 0, taskMode = TestJobData.TaskMode.PredictSteps }); }
public BuildConfigurationPlayerLauncher(PlaymodeTestsControllerSettings settings, TestJobData jobData) { m_Settings = settings; m_JobData = jobData; m_TargetPlatform = ExecutionSettings.targetPlatform ?? EditorUserBuildSettings.activeBuildTarget; m_BuildConfigurationPlatform = m_TargetPlatform.GetPlatform() ?? throw new Exception($"Cannot resolve platform for {m_TargetPlatform}"); }
public override IEnumerator Execute(TestJobData testJobData) { testJobData.RunStartedEvent = new RunStartedEvent(); testJobData.TestStartedEvent = new TestStartedEvent(); testJobData.TestFinishedEvent = new TestFinishedEvent(); testJobData.RunFinishedEvent = new RunFinishedEvent(); yield break; }
public override IEnumerator Execute(TestJobData testJobData) { testJobData.RunStartedEvent.AddListener(ApiCallbacksDelegator.RunStarted); testJobData.TestStartedEvent.AddListener(ApiCallbacksDelegator.TestStarted); testJobData.TestFinishedEvent.AddListener(ApiCallbacksDelegator.TestFinished); testJobData.RunFinishedEvent.AddListener(ApiCallbacksDelegator.RunFinished); yield break; }
public override IEnumerator Execute(TestJobData testJobData) { m_Listener = GetListener(); testJobData.RunStartedEvent.AddListener(v => m_Listener.RunStarted(v)); testJobData.TestStartedEvent.AddListener(v => m_Listener.TestStarted(v)); testJobData.TestFinishedEvent.AddListener(v => m_Listener.TestFinished(v)); testJobData.RunFinishedEvent.AddListener(v => m_Listener.RunFinished(v)); yield break; }
public override IEnumerator Execute(TestJobData testJobData) { var executionSettings = testJobData.executionSettings; var settings = PlaymodeTestsControllerSettings.CreateRunnerSettings(executionSettings.filters.Select(filter => filter.ToRuntimeTestRunnerFilter(executionSettings.runSynchronously)).ToArray()); var launcher = new PlayerLauncher(settings, executionSettings.targetPlatform, executionSettings.overloadTestRunSettings, executionSettings.playerHeartbeatTimeout, executionSettings.playerSavePath); launcher.Run(); yield return(null); }
public override IEnumerator Execute(TestJobData testJobData) { var cancelled = !SaveCurrentModifiedScenesIfUserWantsTo(); if (cancelled) { throw new TestRunCanceledException(); } yield break; }
public override IEnumerator Execute(TestJobData testJobData) { if (StateChangeCallbackRegistered) { UnsubscribeLogMessageReceivedThreaded(LogReceived); } SubscribeLogMessageReceivedThreaded(LogReceived); StateChangeCallbackRegistered = true; yield break; }
public override IEnumerator Execute(TestJobData testJobData) { var testLauncher = new EditModeLauncher(testJobData.executionSettings.filters, TestPlatform.EditMode, testJobData.executionSettings.runSynchronously); testLauncher.Run(); while (EditModeLauncher.IsRunning) { yield return(null); } }
public override IEnumerator Execute(TestJobData testJobData) { var currentFiles = GetAllFilesInAssetsDirectory(); var existingFiles = testJobData.existingFiles; if (currentFiles.Length != existingFiles.Length) { LogWarningForFilesIfAny(currentFiles.Where(file => !testJobData.existingFiles.Contains(file)).ToArray()); } yield return(null); }
public override IEnumerator Execute(TestJobData testJobData) { var testLauncher = new EditModeLauncher(testJobData.executionSettings.filters, TestPlatform.EditMode, testJobData.executionSettings.runSynchronously); testJobData.editModeRunner = testLauncher.m_EditModeRunner; testLauncher.Run(); while (testJobData.editModeRunner != null && !testJobData.editModeRunner.RunFinished) { yield return(null); } }
public override IEnumerator Execute(TestJobData testJobData) { var settings = PlaymodeTestsControllerSettings.CreateRunnerSettings(testJobData.executionSettings.filters.Select(filter => filter.ToTestRunnerFilter()).ToArray()); var launcher = new PlaymodeLauncher(settings); launcher.Run(); while (PlaymodeLauncher.IsRunning) { yield return(null); } }
public override IEnumerator Execute(TestJobData testJobData) { if (GetSceneCount() == 1 && string.IsNullOrEmpty(GetSceneAt(0).path)) { NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); yield break; } var scene = NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive); SetActiveScene(scene); }
public override IEnumerator Execute(TestJobData testJobData) { var settings = PlaymodeTestsControllerSettings.CreateRunnerSettings(testJobData.executionSettings.filters.Select(filter => filter.ToTestRunnerFilter()).ToArray()); var launcher = new BuildConfigurationPlayerLauncher(settings, testJobData); launcher.Run(); yield return(null); while (!RemoteTestRunController.instance.RunHasFinished) { yield return(null); } }
public override IEnumerator Execute(TestJobData testJobData) { if (testJobData.testTree == null) { throw new RequiredTestRunDataMissingException(nameof(testJobData.testTree)); } var allTests = GetTestsExpectedToRun(testJobData.testTree, testJobData.executionSettings.BuildNUnitFilter()); testJobData.testProgress = new TestProgress(allTests.ToArray()); yield break; }
public override IEnumerator Execute(TestJobData testJobData) { if (testJobData.testTree == null) { throw new Exception($"Test tree is not available for {GetType().Name}."); } var enumerator = ExecuteMethods(testJobData.testTree, testJobData.executionSettings.BuildNUnitFilter()); while (enumerator.MoveNext()) { yield return(null); } }
public override IEnumerator Execute(TestJobData testJobData) { var sceneSetup = testJobData.SceneSetup; if (sceneSetup != null && sceneSetup.Length > 0) { RestoreSceneManagerSetup(sceneSetup); } else { NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); } yield break; }
public override IEnumerator Execute(TestJobData testJobData) { for (var i = 0; i < GetSceneCount(); i++) { var scene = GetSceneAt(i); var isSceneSaved = !string.IsNullOrEmpty(scene.path); var isSceneDirty = scene.isDirty; if (isSceneSaved && isSceneDirty) { ReloadScene(scene); } } yield break; }
public BuildConfigurationPlayerLauncher(PlaymodeTestsControllerSettings settings, TestJobData jobData) { m_Settings = settings; m_JobData = jobData; m_TargetPlatform = ExecutionSettings.targetPlatform ?? EditorUserBuildSettings.activeBuildTarget; switch (m_TargetPlatform) { case BuildTarget.StandaloneWindows64: m_BuildConfigurationPlatform = new WindowsPlatform(); break; case BuildTarget.StandaloneOSX: m_BuildConfigurationPlatform = new MacOSXPlatform(); break; case BuildTarget.StandaloneLinux64: m_BuildConfigurationPlatform = new LinuxPlatform(); break; case BuildTarget.Android: m_BuildConfigurationPlatform = new AndroidPlatform(); break; case BuildTarget.iOS: m_BuildConfigurationPlatform = new IosPlatform(); break; case BuildTarget.XboxOne: m_BuildConfigurationPlatform = new XboxOnePlatform(); break; case BuildTarget.PS4: m_BuildConfigurationPlatform = new PS4Platform(); break; case BuildTarget.WSAPlayer: m_BuildConfigurationPlatform = new UniversalWindowsPlatform(); break; default: throw new Exception($"Cannot resolve platform for {m_TargetPlatform}"); } }
public override IEnumerator Execute(TestJobData testJobData) { if (testJobData.taskInfoStack.Peek().taskMode == TestJobData.TaskMode.PredictSteps) { testJobData.currentStage.totalStepsInStage += GetNumSteps(testJobData); yield break; } testJobData.currentStep.indexBeforeCurrentTask = testJobData.currentStep.index; var editModeRunner = ScriptableObject.CreateInstance <EditModeRunner>(); editModeRunner.UnityTestAssemblyRunnerFactory = new UnityTestAssemblyRunnerFactory(); editModeRunner.Init(testJobData.executionSettings.filters, TestPlatform.EditMode, testJobData.executionSettings.runSynchronously, testJobData.testTree, testJobData.RunStartedEvent, testJobData.TestStartedEvent, testJobData.TestFinishedEvent, testJobData.RunFinishedEvent); var callback = editModeRunner.AddEventHandler <EditModeRunnerCallback>(); callback.runner = editModeRunner; editModeRunner.Run(); testJobData.editModeRunner = editModeRunner; while (testJobData.editModeRunner != null && !testJobData.editModeRunner.RunFinished) { var runner = testJobData.editModeRunner; if (runner.m_ResumeAfterDomainReload && !m_WaitForDomainReload) { if (testJobData.testTree == null) { throw new Exception("Test tree is required to resume test execution."); } runner.Resume(testJobData.testTree, testJobData.RunStartedEvent, testJobData.TestStartedEvent, testJobData.TestFinishedEvent, testJobData.RunFinishedEvent); } runner.TestConsumer(); m_WaitForDomainReload = runner.m_ResumeAfterDomainReload; if (!testJobData.executionSettings.runSynchronously) { UpdateStepCount(testJobData); yield return(null); } } }
public override IEnumerator Execute(TestJobData testJobData) { var sceneCount = GetSceneCount(); if (sceneCount <= 1) { yield break; } for (int i = 0; i < sceneCount; i++) { var scene = GetSceneAt(i); if (string.IsNullOrEmpty(scene.path)) { CloseScene(scene, true); yield break; } } }
public override IEnumerator Execute(TestJobData testJobData) { if (testJobData.undoGroup < 0) { yield break; } DisplayProgressBar("Undo", "Reverting changes to the scene", 0); var undoStartTime = TimeNow(); RevertAllDownToGroup(testJobData.undoGroup); var timeDelta = TimeNow() - undoStartTime; if (timeDelta.TotalMilliseconds >= warningThreshold) { LogWarning($"Undo after editor test run took {timeDelta.Seconds} second{(timeDelta.Seconds == 1 ? "" : "s")}."); } ClearProgressBar(); }
public override IEnumerator Execute(TestJobData testJobData) { if (testJobData.testTree != null) { yield break; } var assembliesEnumerator = m_testAssemblyProvider.GetAssembliesGroupedByTypeAsync(m_TestPlatform); while (assembliesEnumerator.MoveNext()) { yield return(null); } if (assembliesEnumerator.Current == null) { throw new Exception("Assemblies not retrieved."); } var assemblies = assembliesEnumerator.Current.Where(pair => m_TestPlatform.IsFlagIncluded(pair.Key)).SelectMany(pair => pair.Value).Select(x => x.Assembly).ToArray(); var buildSettings = UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(m_TestPlatform); var enumerator = m_testAssemblyBuilder.BuildAsync(assemblies, Enumerable.Repeat(m_TestPlatform, assemblies.Length).ToArray(), buildSettings); while (enumerator.MoveNext()) { yield return(null); } var testList = enumerator.Current; if (testList == null) { throw new Exception("Test list not retrieved."); } testList.ParseForNameDuplicates(); testJobData.testTree = testList; m_CallbacksDelegator.TestTreeRebuild(testList); }
public override IEnumerator Execute(TestJobData testJobData) { if (testJobData.testProgress == null) { throw new RequiredTestRunDataMissingException(nameof(testJobData.testProgress)); } if (testJobData.TestStartedEvent == null) { throw new RequiredTestRunDataMissingException(nameof(testJobData.TestStartedEvent)); } if (testJobData.TestFinishedEvent == null) { throw new RequiredTestRunDataMissingException(nameof(testJobData.TestFinishedEvent)); } m_TestProgress = testJobData.testProgress; testJobData.TestStartedEvent.AddListener(TestStarted); testJobData.TestFinishedEvent.AddListener(TestFinished); yield break; }
public override IEnumerator Execute(TestJobData testJobData) { testJobData.existingFiles = GetAllFilesInAssetsDirectory(); yield return(null); }
public override IEnumerator Execute(TestJobData testJobData) { testJobData.SceneSetup = GetSceneManagerSetup(); yield break; }
public override IEnumerator Execute(TestJobData testJobData) { ClearProgressBar(); yield break; }
private void UpdateStepCount(TestJobData testJobData) { testJobData.currentStep.index = testJobData.currentStep.indexBeforeCurrentTask + GetCurrentStepNumber(testJobData); testJobData.currentStep.title = GetCurrentStepTitle(testJobData); }
private string GetCurrentStepTitle(TestJobData testJobData) { return(testJobData.testProgress.CurrentTest); }
public abstract IEnumerator Execute(TestJobData testJobData);