예제 #1
0
        private void SetOutputPath()
        {
            if (string.IsNullOrWhiteSpace(OutputPathParameter))
            {
                var currentDateTime = DateTime.Now;
                OutputPathParameter = $@"Results\{currentDateTime:yyyyMdhhmmss}\Mutation_Report_{SourceClassPlaceholder}";
                HtmlOutputPath      = $"{OutputPathParameter}.html";
                JsonOutputPath      = $"{OutputPathParameter}.json";

                return;
            }

            if (OutputPathParameter.EndsWith(JsonExtension))
            {
                JsonOutputPath = OutputPathParameter;
                HtmlOutputPath = OutputPathParameter.Replace(JsonExtension, HtmlExtension);
                return;
            }

            if (OutputPathParameter.EndsWith(HtmlExtension))
            {
                HtmlOutputPath = OutputPathParameter;
                HtmlOutputPath = OutputPathParameter.Replace(HtmlExtension, JsonExtension);
                return;
            }

            throw new MuTestInputException("Output Path is invalid", CliOptions.OutputPath.ArgumentDescription);
        }
        /// <summary>
        /// Get parameters from string.
        /// </summary>
        /// <param name="args">Parameters from console</param>
        /// <returns>Collection of parameters</returns>
        public static List <Parameter> GetParameters(string[] args)
        {
            if (!VerifyArgumentString(args))
            {
                throw new ArgumentException("Wrong parameters");
            }

            var parameters = new List <Parameter>();

            for (var i = 0; i < args.Length; i++)
            {
                Parameter parameter = null;

                if (args[i] == "-n")
                {
                    parameter = new ThreadParameter(args[i], args[i + 1]);
                }
                else if (args[i] == "-l")
                {
                    parameter = new SpeedParameter(args[i], args[i + 1]);
                }
                else if (args[i] == "-f")
                {
                    parameter = new FilePathParameter(args[i], args[i + 1]);
                }
                else if (args[i] == "-o")
                {
                    parameter = new OutputPathParameter(args[i], args[i + 1]);
                }

                if (parameter != null && parameter.Verify())
                {
                    parameters.Add(parameter);
                }
            }

            return(parameters);
        }