This repository has been archived on 2025-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
unity-cube-game/Library/PackageCache/com.unity.test-framework@1..../UnityEditor.TestRunner/Api/TestLauncherFactory.cs

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);
}
}
}