public void Run()
        {
            EditModeTestCallbacks.RestoringTestContext += OnRestoringTest;
            var context = m_Runner.GetCurrentContext();

            if (m_SetUpTearDownState == null)
            {
                m_SetUpTearDownState = CreateInstance <BeforeAfterTestCommandState>();
            }
            context.SetUpTearDownState = m_SetUpTearDownState;

            if (m_OuterUnityTestActionState == null)
            {
                m_OuterUnityTestActionState = CreateInstance <BeforeAfterTestCommandState>();
            }
            context.OuterUnityTestActionState = m_OuterUnityTestActionState;

            if (m_EnumerableTestState == null)
            {
                m_EnumerableTestState = CreateInstance <EnumerableTestState>();
            }
            context.EnumerableTestState = m_EnumerableTestState;

            if (!m_RunningTests)
            {
                m_RunStartedEvent.Invoke(m_Runner.LoadedTest);
            }

            if (m_ConstructDelegator == null)
            {
                m_ConstructDelegator = new ConstructDelegator(m_TestRunnerStateSerializer);
            }

            Reflect.ConstructorCallWrapper = m_ConstructDelegator.Delegate;
            m_TestStartedEvent.AddListener(TestStartedEvent);
            m_TestFinishedEvent.AddListener(TestFinishedEvent);

            AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload;

            RunningTests = true;

            EditorApplication.LockReloadAssemblies();

            var testListenerWrapper = new TestListenerWrapper(m_TestStartedEvent, m_TestFinishedEvent);

            m_RunStep      = m_Runner.Run(testListenerWrapper, GetFilter()).GetEnumerator();
            m_RunningTests = true;

            if (!RunningSynchronously)
            {
                EditorApplication.update += TestConsumer;
            }
        }
Exemplo n.º 2
0
        public void OnEnable()
        {
            if (m_ExecuteOnEnable)
            {
                InitRunner();
                m_ExecuteOnEnable = false;
                foreach (var callback in m_CallbackObjects)
                {
                    AddListeners(callback as ITestRunnerListener);
                }
                m_ConstructDelegator = new ConstructDelegator(m_TestRunnerStateSerializer);

                EnumeratorStepHelper.SetEnumeratorPC(m_CurrentPC);

                UnityWorkItemDataHolder.alreadyExecutedTests = m_ExecutedTests.Select(x => x.uniqueName).ToList();
                UnityWorkItemDataHolder.alreadyStartedTests  = m_AlreadyStartedTests;
                Run();
            }
        }
Exemplo n.º 3
0
        public void Resume(ITest testTree, RunStartedEvent runStartedEvent, TestStartedEvent testStartedEvent, TestFinishedEvent testFinishedEvent, RunFinishedEvent runFinishedEvent)
        {
            if (m_ResumeAfterDomainReload)
            {
                m_RunStartedEvent   = runStartedEvent;
                m_TestStartedEvent  = testStartedEvent;
                m_TestFinishedEvent = testFinishedEvent;
                m_RunFinishedEvent  = runFinishedEvent;
                InitRunner(testTree);
                m_ResumeAfterDomainReload = false;
                foreach (var callback in m_CallbackObjects)
                {
                    AddListeners(callback as ITestRunnerListener);
                }
                m_ConstructDelegator = new ConstructDelegator(m_TestRunnerStateSerializer);

                EnumeratorStepHelper.SetEnumeratorPC(m_CurrentPC);

                UnityWorkItemDataHolder.alreadyExecutedTests = m_ExecutedTests.Select(x => x.fullName).ToList();
                UnityWorkItemDataHolder.alreadyStartedTests  = m_AlreadyStartedTests;
                Run();
            }
        }