58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
using System;
|
|
using UnityEngine.TestTools;
|
|
using UnityEngine.TestTools.TestRunner;
|
|
|
|
namespace UnityEditor.TestTools.TestRunner.Api
|
|
{
|
|
internal class TestLauncherFactory
|
|
{
|
|
internal TestLauncherBase GetLauncher(ExecutionSettings executionSettings)
|
|
{
|
|
if (executionSettings.filter.testMode == TestMode.EditMode)
|
|
{
|
|
return GetEditModeLauncher(executionSettings.filter);
|
|
}
|
|
else
|
|
{
|
|
var settings = PlaymodeTestsControllerSettings.CreateRunnerSettings(executionSettings.filter.ToTestRunnerFilter());
|
|
return GetPlayModeLauncher(settings, executionSettings);
|
|
}
|
|
}
|
|
|
|
static TestLauncherBase GetEditModeLauncher(Filter filter)
|
|
{
|
|
return GetEditModeLauncherForProvidedAssemblies(filter);
|
|
}
|
|
|
|
static TestLauncherBase GetPlayModeLauncher(PlaymodeTestsControllerSettings settings, ExecutionSettings executionSettings)
|
|
{
|
|
if (executionSettings.targetPlatform != null)
|
|
{
|
|
return GetPlayerLauncher(settings, executionSettings.targetPlatform.Value, executionSettings.overloadTestRunSettings);
|
|
}
|
|
|
|
if (PlayerSettings.runPlayModeTestAsEditModeTest)
|
|
{
|
|
return GetEditModeLauncherForProvidedAssemblies(executionSettings.filter, TestPlatform.PlayMode);
|
|
}
|
|
|
|
return GetPlayModeLauncher(settings);
|
|
}
|
|
|
|
static TestLauncherBase GetEditModeLauncherForProvidedAssemblies(Filter filter, TestPlatform testPlatform = TestPlatform.EditMode)
|
|
{
|
|
return new EditModeLauncher(filter.ToTestRunnerFilter(), testPlatform);
|
|
}
|
|
|
|
static TestLauncherBase GetPlayModeLauncher(PlaymodeTestsControllerSettings settings)
|
|
{
|
|
return new PlaymodeLauncher(settings);
|
|
}
|
|
|
|
static TestLauncherBase GetPlayerLauncher(PlaymodeTestsControllerSettings settings, BuildTarget targetPlatform, ITestRunSettings overloadTestRunSettings)
|
|
{
|
|
return new PlayerLauncher(settings, targetPlatform, overloadTestRunSettings);
|
|
}
|
|
}
|
|
}
|