private static void RunInEditor(List <string> testScenes, List <string> otherBuildScenes)
{
CheckActiveBuildTarget();
NetworkResultsReceiver.StopReceiver();
if (testScenes == null || testScenes.Count == 0)
{
Debug.Log("No test scenes on the list");
EditorApplication.Exit(returnCodeRunError);
return;
}
string previousScenesXml = "";
var serializer = new System.Xml.Serialization.XmlSerializer(typeof(EditorBuildSettingsScene[]));
using (StringWriter textWriter = new StringWriter())
{
serializer.Serialize(textWriter, EditorBuildSettings.scenes);
previousScenesXml = textWriter.ToString();
}
EditorBuildSettings.scenes = (testScenes.Concat(otherBuildScenes).ToList()).Select(s => new EditorBuildSettingsScene(s, true)).ToArray();
EditorSceneManager.OpenScene(testScenes.First());
GuiHelper.SetConsoleErrorPause(false);
var config = new PlatformRunnerConfiguration
{
resultsDir = GetParameterArgument(k_ResultFileDirParam),
ipList = TestRunnerConfigurator.GetAvailableNetworkIPs(),
port = PlatformRunnerConfiguration.TryToGetFreePort(),
runInEditor = true
};
var settings = new PlayerSettingConfigurator(true);
settings.AddConfigurationFile(TestRunnerConfigurator.integrationTestsNetwork, string.Join("\n", config.GetConnectionIPs()));
settings.AddConfigurationFile(TestRunnerConfigurator.testScenesToRun, string.Join("\n", testScenes.ToArray()));
settings.AddConfigurationFile(TestRunnerConfigurator.previousScenes, previousScenesXml);
NetworkResultsReceiver.StartReceiver(config);
EditorApplication.isPlaying = true;
}