public IEnumerator Run() { CoroutineTestWorkItem.monoBehaviourCoroutineRunner = this; gameObject.hideFlags |= HideFlags.DontSave; if (settings.sceneBased) { SceneManager.LoadScene(1, LoadSceneMode.Additive); yield return(null); } var testListUtil = new PlayerTestAssemblyProvider(new AssemblyLoadProxy(), m_AssembliesWithTests); m_Runner = new UnityTestAssemblyRunner(new UnityTestAssemblyBuilder(), new PlaymodeWorkItemFactory()); var loadedTests = m_Runner.Load(testListUtil.GetUserAssemblies().Select(a => a.Assembly).ToArray(), TestPlatform.PlayMode, UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(TestPlatform.PlayMode)); loadedTests.ParseForNameDuplicates(); runStartedEvent.Invoke(m_Runner.LoadedTest); var testListenerWrapper = new TestListenerWrapper(testStartedEvent, testFinishedEvent); m_TestSteps = m_Runner.Run(testListenerWrapper, settings.BuildNUnitFilter()).GetEnumerator(); yield return(TestRunnerCoroutine()); }
protected UnityTestAssemblyRunner LoadTests(ITestFilter filter) { var editorLoadedTestAssemblyProvider = new EditorLoadedTestAssemblyProvider(new EditorCompilationInterfaceProxy(), new EditorAssembliesProxy()); var assembliesWithTests = editorLoadedTestAssemblyProvider.GetAssembliesGroupedByType(TestPlatform.PlayMode).Select(x => x.Assembly.GetName().Name).ToList(); var nUnitTestAssemblyRunner = new UnityTestAssemblyRunner(new UnityTestAssemblyBuilder(), null); var assemblyProvider = new PlayerTestAssemblyProvider(new AssemblyLoadProxy(), assembliesWithTests); nUnitTestAssemblyRunner.Load(assemblyProvider.GetUserAssemblies().Select(a => a.Assembly).ToArray(), UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(TestPlatform.PlayMode)); return(nUnitTestAssemblyRunner); }
public void Cleanup() { if (m_Runner != null) { m_Runner.StopRun(); m_Runner = null; } if (Application.isEditor) { Destroy(gameObject); } }