示例#1
0
void FAutomatedTestManager::Tick( float DeltaTime )
{
	// Update the automation controller to keep it running
	AutomationController->Tick();

	// Update the automation process
	switch( AutomationTestState )
	{
	case EAutomationTestState::FindWorkers :
		{
			FindWorkers( DeltaTime );
			break;
		}
	case EAutomationTestState::MonitorTests :
		{
			MonitorTests();
			break;
		}
	case EAutomationTestState::GenerateReport :
		{
			GenerateReport();
			break;
		}
	case EAutomationTestState::Complete :
	case EAutomationTestState::Idle:
	default:
		{
			// Do nothing while we are waiting for something
			break;
		}
	}
}
	bool Tick(float DeltaTime)
	{
		// Update the automation controller to keep it running
		AutomationController->Tick();

		// Update the automation process
		switch (AutomationTestState)
		{
			case EAutomationTestState::FindWorkers:
			{
				FindWorkers(DeltaTime);
				break;
			}
			case EAutomationTestState::RequestTests:
			{
				break;
			}
			case EAutomationTestState::DoingRequestedWork:
			{
				MonitorTests();
				break;
			}
			case EAutomationTestState::Complete:
			case EAutomationTestState::Idle:
			default:
			{
				//pop next command
				if (AutomationCommandQueue.Num())
				{
					AutomationCommand = AutomationCommandQueue[0];
					AutomationCommandQueue.RemoveAt(0);
					if (AutomationCommand == EAutomationCommand::Quit)
					{
						if (AutomationCommandQueue.IsValidIndex(0))
						{
							// Add Quit back to the end of the array.
							AutomationCommandQueue.Add(EAutomationCommand::Quit);
							break;
						}
					}
					AutomationTestState = EAutomationTestState::FindWorkers;
				}

				// Only quit if Quit is the actual last element in the array.
				if (AutomationCommand == EAutomationCommand::Quit)
				{
					GIsRequestingExit = true;
				}
				break;
			}
		}
		return !IsTestingComplete();
	}