private static string ExecutionSettingsToString(Api.ExecutionSettings executionSettings) { if (executionSettings == null) { return("none"); } if (executionSettings.filter == null) { return("no filter"); } return("test mode = " + executionSettings.filter.testMode); }
public Api.ExecutionSettings BuildApiExecutionSettings(string[] commandLineArgs) { var quit = false; string testPlatform = TestMode.EditMode.ToString(); string[] testFilters = null; string[] testCategories = null; string testSettingsFilePath = null; int testRepetitions = 1; int? playerHeartbeatTimeout = null; bool runSynchronously = false; string[] testAssemblyNames = null; var optionSet = new CommandLineOptionSet( new CommandLineOption("quit", () => { quit = true; }), new CommandLineOption("testPlatform", platform => { testPlatform = platform; }), new CommandLineOption("editorTestsFilter", filters => { testFilters = filters; }), new CommandLineOption("testFilter", filters => { testFilters = filters; }), new CommandLineOption("editorTestsCategories", catagories => { testCategories = catagories; }), new CommandLineOption("testCategory", catagories => { testCategories = catagories; }), new CommandLineOption("testSettingsFile", settingsFilePath => { testSettingsFilePath = settingsFilePath; }), new CommandLineOption("testRepetitions", reps => { testRepetitions = int.Parse(reps); }), new CommandLineOption("playerHeartbeatTimeout", timeout => { playerHeartbeatTimeout = int.Parse(timeout); }), new CommandLineOption("runSynchronously", () => { runSynchronously = true; }), new CommandLineOption("assemblyNames", assemblyNames => { testAssemblyNames = assemblyNames; }) ); optionSet.Parse(commandLineArgs); DisplayQuitWarningIfQuitIsGiven(quit); CheckForScriptCompilationErrors(); LogParametersForRun(testPlatform, testFilters, testCategories, testSettingsFilePath); var testSettings = GetTestSettings(testSettingsFilePath); var filter = new Filter() { groupNames = testFilters, categoryNames = testCategories, assemblyNames = testAssemblyNames }; var buildTarget = SetFilterAndGetBuildTarget(testPlatform, filter); RerunCallbackData.instance.runFilters = new [] { new TestRunnerFilter() { categoryNames = filter.categoryNames, groupNames = filter.groupNames, testRepetitions = testRepetitions } }; RerunCallbackData.instance.testMode = filter.testMode; var settings = new Api.ExecutionSettings() { filters = new [] { filter }, overloadTestRunSettings = new RunSettings(testSettings), targetPlatform = buildTarget, runSynchronously = runSynchronously }; if (playerHeartbeatTimeout != null) { settings.playerHeartbeatTimeout = playerHeartbeatTimeout.Value; } return(settings); }