Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }