private static int ForwardToVSTestConsole(ParseResult parseResult, string[] args, string[] settings, string testSessionCorrelationId) { List <string> convertedArgs = new VSTestArgumentConverter().Convert(args, out List <string> ignoredArgs); if (ignoredArgs.Any()) { Reporter.Output.WriteLine(string.Format(LocalizableStrings.IgnoredArgumentsMessage, string.Join(" ", ignoredArgs)).Yellow()); } // merge the args settings, we don't need to escape // one more time, there is no extra hop via msbuild convertedArgs.AddRange(settings); if (FeatureFlag.Default.IsEnabled(FeatureFlag.ARTIFACTS_POSTPROCESSING)) { // Add artifacts processing mode and test session id for the artifact post-processing convertedArgs.Add("--artifactsProcessingMode-collect"); convertedArgs.Add($"--testSessionCorrelationId:{testSessionCorrelationId}"); } int exitCode = new VSTestForwardingApp(convertedArgs).Execute(); // We run post processing also if execution is failed for possible partial successful result to post process. exitCode |= RunArtifactPostProcessingIfNeeded(testSessionCorrelationId, parseResult, FeatureFlag.Default); return(exitCode); }