private ProcessArgumentBuilder GetArguments( OpenCoverContext context, OpenCoverSettings settings, FilePath outputPath) { var builder = new ProcessArgumentBuilder(); // The target application to call. builder.AppendSwitch("-target", ":", context.FilePath.FullPath.Quote()); // The arguments to the target application. if (context.Settings != null && context.Settings.Arguments != null) { var arguments = context.Settings.Arguments.Render(); if (!string.IsNullOrWhiteSpace(arguments)) { arguments = arguments.Replace("\"", "\\\""); builder.AppendSwitch("-targetargs", ":", arguments.Quote()); } } // Filters if (settings.Filters.Count > 0) { var filters = string.Join(" ", settings.Filters); builder.AppendSwitch("-filter", ":", filters.Quote()); } // Exclude by attribute if (settings.ExcludedAttributeFilters.Count > 0) { var filters = string.Join(";", settings.ExcludedAttributeFilters); builder.AppendSwitch("-excludebyattribute", ":", filters.Quote()); } // Exclude by file if (settings.ExcludedFileFilters.Count > 0) { var filters = string.Join(";", settings.ExcludedFileFilters); builder.AppendSwitch("-excludebyfile", ":", filters.Quote()); } if (settings.SkipAutoProps) { builder.Append("-skipautoprops"); } builder.AppendSwitch("-register", ":", settings.Register); if (settings.ReturnTargetCodeOffset != null) { builder.AppendSwitch("-returntargetcode", ":", settings.ReturnTargetCodeOffset.Value.ToString(System.Globalization.CultureInfo.InvariantCulture)); } // Set the output file. outputPath = outputPath.MakeAbsolute(_environment); builder.AppendSwitch("-output", ":", outputPath.FullPath.Quote()); return(builder); }
private ProcessArgumentBuilder GetArguments( OpenCoverContext context, OpenCoverSettings settings, FilePath outputPath) { var builder = new ProcessArgumentBuilder(); // The target application to call. builder.AppendSwitch("-target", ":", context.FilePath.FullPath.Quote()); // The arguments to the target application. if (context.Settings != null && context.Settings.Arguments != null) { var arguments = context.Settings.Arguments.Render(); if (!string.IsNullOrWhiteSpace(arguments)) { arguments = arguments.Replace("\"", "\\\""); builder.AppendSwitch("-targetargs", ":", arguments.Quote()); } } // Filters if (settings.Filters.Count > 0) { var filters = string.Join(" ", settings.Filters); builder.AppendSwitch("-filter", ":", filters.Quote()); } // Exclude by attribute if (settings.ExcludedAttributeFilters.Count > 0) { var filters = string.Join(";", settings.ExcludedAttributeFilters); builder.AppendSwitch("-excludebyattribute", ":", filters.Quote()); } // Exclude by file if (settings.ExcludedFileFilters.Count > 0) { var filters = string.Join(";", settings.ExcludedFileFilters); builder.AppendSwitch("-excludebyfile", ":", filters.Quote()); } // Use per-user registration of code coverage profiler. builder.AppendSwitch("-register", ":", "user"); // Set the output file. outputPath = outputPath.MakeAbsolute(_environment); builder.AppendSwitch("-output", ":", outputPath.FullPath.Quote()); return(builder); }
private static OpenCoverContext InterceptAction( ICakeContext context, Action <ICakeContext> action) { var interceptor = new OpenCoverContext(context); action(interceptor); // Validate arguments. if (interceptor.FilePath == null) { throw new CakeException("No tool was started."); } return(interceptor); }
private ProcessArgumentBuilder GetArguments( OpenCoverContext context, OpenCoverSettings settings, FilePath outputPath) { var builder = new ProcessArgumentBuilder(); // The target application to call. builder.AppendSwitch("-target", ":", context.FilePath.MakeAbsolute(_environment).FullPath.Quote()); // The arguments to the target application. var arguments = context.Settings?.Arguments?.Render(); if (!string.IsNullOrWhiteSpace(arguments)) { arguments = arguments.Replace("\"", "\\\""); builder.AppendSwitch("-targetargs", ":", arguments.Quote()); } // Filters if (settings.Filters.Count > 0) { var filters = string.Join(" ", settings.Filters); builder.AppendSwitch("-filter", ":", filters.Quote()); } // Exclude by attribute if (settings.ExcludedAttributeFilters.Count > 0) { var filters = string.Join(";", settings.ExcludedAttributeFilters); builder.AppendSwitch("-excludebyattribute", ":", filters.Quote()); } // Exclude by file if (settings.ExcludedFileFilters.Count > 0) { var filters = string.Join(";", settings.ExcludedFileFilters); builder.AppendSwitch("-excludebyfile", ":", filters.Quote()); } if (settings.SkipAutoProps) { builder.Append("-skipautoprops"); } if (settings.OldStyle) { builder.Append("-oldStyle"); } if (settings.MergeOutput) { builder.Append("-mergeoutput"); } if (settings.Register != null) { // due to the fact that register sometimes needs a colon-separator and sometimes it does not // there is no separator here but instead it's added in OpenCoverRegisterOption.ToString() builder.AppendSwitch("-register", string.Empty, settings.Register.ToString()); } if (settings.ReturnTargetCodeOffset != null) { builder.AppendSwitch("-returntargetcode", ":", settings.ReturnTargetCodeOffset.Value.ToString(System.Globalization.CultureInfo.InvariantCulture)); } // Set the output file. outputPath = outputPath.MakeAbsolute(_environment); builder.AppendSwitch("-output", ":", outputPath.FullPath.Quote()); // Exclude directories if (settings.ExcludeDirectories.Count > 0) { var excludeDirs = string.Join(";", settings.ExcludeDirectories.Select(d => d.MakeAbsolute(_environment).FullPath)); builder.AppendSwitch("-excludedirs", ":", excludeDirs.Quote()); } // Log level if (settings.LogLevel != OpenCoverLogLevel.Info) { builder.AppendSwitch("-log", ":", settings.LogLevel.ToString()); } // HideSkipped Option if (settings.HideSkippedOption != OpenCoverHideSkippedOption.None) { if (settings.HideSkippedOption == OpenCoverHideSkippedOption.All) { builder.AppendSwitch(HideSkippedConstant, ":", "All"); } else { var hideSkippedOptions = string.Join(";", settings.HideSkippedOption.GetFlags()); builder.AppendSwitch(HideSkippedConstant, ":", hideSkippedOptions); } } // Merge by hash if (settings.MergeByHash) { builder.Append("-mergebyhash"); } // No default filters if (settings.NoDefaultFilters) { builder.Append("-nodefaultfilters"); } // Search directories if (settings.SearchDirectories.Count > 0) { var excludeDirs = string.Join(";", settings.SearchDirectories.Select(d => d.MakeAbsolute(_environment).FullPath)); builder.AppendSwitch("-searchdirs", ":", excludeDirs.Quote()); } // No default filters if (settings.IsService) { builder.Append("-service"); } // Target directory if (settings.TargetDirectory != null) { builder.AppendSwitch("-targetdir", ":", settings.TargetDirectory.MakeAbsolute(_environment).FullPath.Quote()); } return(builder); }
private ProcessArgumentBuilder GetArguments( OpenCoverContext context, OpenCoverSettings settings, FilePath outputPath) { var builder = new ProcessArgumentBuilder(); // The target application to call. builder.AppendSwitch("-target", ":", context.FilePath.MakeAbsolute(_environment).FullPath.Quote()); // The arguments to the target application. var arguments = context.Settings?.Arguments?.Render(); if (!string.IsNullOrWhiteSpace(arguments)) { arguments = arguments.Replace("\"", "\\\""); builder.AppendSwitch("-targetargs", ":", arguments.Quote()); } // Filters if (settings.Filters.Count > 0) { var filters = string.Join(" ", settings.Filters); builder.AppendSwitch("-filter", ":", filters.Quote()); } // Exclude by attribute if (settings.ExcludedAttributeFilters.Count > 0) { var filters = string.Join(";", settings.ExcludedAttributeFilters); builder.AppendSwitch("-excludebyattribute", ":", filters.Quote()); } // Exclude by file if (settings.ExcludedFileFilters.Count > 0) { var filters = string.Join(";", settings.ExcludedFileFilters); builder.AppendSwitch("-excludebyfile", ":", filters.Quote()); } if (settings.SkipAutoProps) { builder.Append("-skipautoprops"); } if (settings.OldStyle) { builder.Append("-oldStyle"); } if (settings.MergeOutput) { builder.Append("-mergeoutput"); } builder.AppendSwitch("-register", ":", settings.Register); if (settings.ReturnTargetCodeOffset != null) { builder.AppendSwitch("-returntargetcode", ":", settings.ReturnTargetCodeOffset.Value.ToString(System.Globalization.CultureInfo.InvariantCulture)); } // Set the output file. outputPath = outputPath.MakeAbsolute(_environment); builder.AppendSwitch("-output", ":", outputPath.FullPath.Quote()); // Exclude directories if (settings.ExcludeDirectories.Count > 0) { var excludeDirs = string.Join(";", settings.ExcludeDirectories.Select(d => d.MakeAbsolute(_environment).FullPath)); builder.AppendSwitch("-excludedirs", ":", excludeDirs.Quote()); } // Log level if (settings.LogLevel != OpenCoverLogLevel.Info) { builder.AppendSwitch("-log", ":", settings.LogLevel.ToString()); } // Merge by hash if (settings.MergeByHash) { builder.Append("-mergebyhash"); } // No default filters if (settings.NoDefaultFilters) { builder.Append("-nodefaultfilters"); } // Search directories if (settings.SearchDirectories.Count > 0) { var excludeDirs = string.Join(";", settings.SearchDirectories.Select(d => d.MakeAbsolute(_environment).FullPath)); builder.AppendSwitch("-searchdirs", ":", excludeDirs.Quote()); } // No default filters if (settings.IsService) { builder.Append("-service"); } // Target directory if (settings.TargetDirectory != null) { builder.AppendSwitch("-targetdir", ":", settings.TargetDirectory.MakeAbsolute(_environment).FullPath.Quote()); } return(builder); }