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));
        }
Example #2
0
        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();
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #7
0
        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());
        }
Example #8
0
 public UnityTestAssemblyRunner(UnityTestAssemblyBuilder builder, WorkItemFactory factory)
 {
     unityBuilder = builder;
     m_Factory    = factory;
     Context      = new UnityTestExecutionContext();
 }
Example #9
0
 public TestListProvider(EditorLoadedTestAssemblyProvider assemblyProvider, UnityTestAssemblyBuilder assemblyBuilder)
 {
     m_AssemblyProvider = assemblyProvider;
     m_AssemblyBuilder  = assemblyBuilder;
 }