public static void BuildAndRunInPlayer(PlatformRunnerConfiguration configuration) { NetworkResultsReceiver.StopReceiver(); var settings = new PlayerSettingConfigurator(false); if (configuration.sendResultsOverNetwork) { try { var l = new TcpListener(IPAddress.Any, configuration.port); l.Start(); configuration.port = ((IPEndPoint)l.Server.LocalEndPoint).Port; l.Stop(); } catch (SocketException e) { Debug.LogException(e); if (InternalEditorUtility.inBatchMode) EditorApplication.Exit(Batch.returnCodeRunError); } } if (InternalEditorUtility.inBatchMode) settings.AddConfigurationFile(TestRunnerConfigurator.batchRunFileMarker, ""); if (configuration.sendResultsOverNetwork) settings.AddConfigurationFile(TestRunnerConfigurator.integrationTestsNetwork, string.Join("\n", configuration.GetConnectionIPs())); settings.AddConfigurationFile (TestRunnerConfigurator.testScenesToRun, string.Join ("\n", configuration.testScenes.ToArray())); settings.ChangeSettingsForIntegrationTests(); AssetDatabase.Refresh(); var result = BuildPipeline.BuildPlayer(configuration.testScenes.Concat(configuration.buildScenes).ToArray(), configuration.GetTempPath(), configuration.buildTarget, BuildOptions.AutoRunPlayer | BuildOptions.Development); settings.RevertSettingsChanges(); settings.RemoveAllConfigurationFiles(); AssetDatabase.Refresh(); if (!string.IsNullOrEmpty(result)) { if (InternalEditorUtility.inBatchMode) EditorApplication.Exit(Batch.returnCodeRunError); return; } if (configuration.sendResultsOverNetwork) NetworkResultsReceiver.StartReceiver(configuration); else if (InternalEditorUtility.inBatchMode) EditorApplication.Exit(Batch.returnCodeTestsOk); }
public static void BuildAndRunInPlayer(PlatformRunnerConfiguration configuration) { NetworkResultsReceiver.StopReceiver(); var settings = new PlayerSettingConfigurator(false); if (configuration.sendResultsOverNetwork) { try { var l = new TcpListener(IPAddress.Any, configuration.port); l.Start(); configuration.port = ((IPEndPoint)l.Server.LocalEndPoint).Port; l.Stop(); } catch (SocketException e) { Debug.LogException(e); if (InternalEditorUtility.inBatchMode) { EditorApplication.Exit(Batch.returnCodeRunError); } } } if (InternalEditorUtility.inBatchMode) { settings.AddConfigurationFile(TestRunnerConfigurator.batchRunFileMarker, ""); } if (configuration.sendResultsOverNetwork) { settings.AddConfigurationFile(TestRunnerConfigurator.integrationTestsNetwork, string.Join("\n", configuration.GetConnectionIPs())); } settings.AddConfigurationFile(TestRunnerConfigurator.testScenesToRun, string.Join("\n", configuration.testScenes.ToArray())); settings.ChangeSettingsForIntegrationTests(); AssetDatabase.Refresh(); var result = BuildPipeline.BuildPlayer(configuration.testScenes.Concat(configuration.buildScenes).ToArray(), configuration.GetTempPath(), configuration.buildTarget, BuildOptions.AutoRunPlayer | BuildOptions.Development); settings.RevertSettingsChanges(); settings.RemoveAllConfigurationFiles(); AssetDatabase.Refresh(); if (!string.IsNullOrEmpty(result)) { if (InternalEditorUtility.inBatchMode) { EditorApplication.Exit(Batch.returnCodeRunError); } return; } if (configuration.sendResultsOverNetwork) { NetworkResultsReceiver.StartReceiver(configuration); } else if (InternalEditorUtility.inBatchMode) { EditorApplication.Exit(Batch.returnCodeTestsOk); } }