protected static ITest BuildTests(TestPlatform testPlatform, IAssemblyWrapper[] assemblies) { var settings = UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(testPlatform); var builder = new UnityTestAssemblyBuilder(); return(builder.Build(assemblies.Select(a => a.Assembly).ToArray(), settings)); }
private void InitRunner() { //We give the EditMode platform here so we dont suddenly create Playmode work items in the test Runner. m_Runner = (UnityTestAssemblyRunnerFactory ?? new UnityTestAssemblyRunnerFactory()).Create(TestPlatform.EditMode, new EditmodeWorkItemFactory()); var testAssemblyProvider = new EditorLoadedTestAssemblyProvider(new EditorCompilationInterfaceProxy(), new EditorAssembliesProxy()); var assemblies = testAssemblyProvider.GetAssembliesGroupedByType(m_TestPlatform).Select(x => x.Assembly).ToArray(); var loadedTests = m_Runner.Load(assemblies, UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(m_TestPlatform)); loadedTests.ParseForNameDuplicates(); hideFlags |= HideFlags.DontSave; EnumerableSetUpTearDownCommand.ActivePcHelper = new EditModePcHelper(); OuterUnityTestActionCommand.ActivePcHelper = new EditModePcHelper(); }
public IEnumerator <ITest> GetTestListAsync(TestPlatform platform) { var assemblies = m_AssemblyProvider.GetAssembliesGroupedByTypeAsync(platform); while (assemblies.MoveNext()) { yield return(null); } var settings = UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(platform); var test = m_AssemblyBuilder.BuildAsync(assemblies.Current.Select(x => x.Assembly).ToArray(), settings); while (test.MoveNext()) { yield return(null); } yield return(test.Current); }
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 IEnumerator <ITest> GetTestListAsync(TestPlatform platform) { var assembliesTask = m_AssemblyProvider.GetAssembliesGroupedByTypeAsync(platform); while (assembliesTask.MoveNext()) { yield return(null); } var assemblies = assembliesTask.Current.Where(pair => platform.IsFlagIncluded(pair.Key)) .SelectMany(pair => pair.Value.Select(assemblyInfo => Tuple.Create(assemblyInfo.Assembly, pair.Key))).ToArray(); var settings = UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(platform); var test = m_AssemblyBuilder.BuildAsync(assemblies.Select(a => a.Item1).ToArray(), assemblies.Select(a => a.Item2).ToArray(), settings); while (test.MoveNext()) { yield return(null); } yield return(test.Current); }
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 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()); }
public UnityTestAssemblyRunner(UnityTestAssemblyBuilder builder, WorkItemFactory factory) { unityBuilder = builder; m_Factory = factory; Context = new UnityTestExecutionContext(); }
public TestListProvider(EditorLoadedTestAssemblyProvider assemblyProvider, UnityTestAssemblyBuilder assemblyBuilder) { m_AssemblyProvider = assemblyProvider; m_AssemblyBuilder = assemblyBuilder; }