private static ProcessArgumentBuilder ProcessArguments( ICakeContext cakeContext, ProcessArgumentBuilder builder, FilePath project, CoverletSettings settings) { builder.AppendProperty(nameof(CoverletSettings.CollectCoverage), settings.CollectCoverage.ToString()); builder.AppendPropertyList(nameof(CoverletSettings.CoverletOutputFormat), SplitFlagEnum(settings.CoverletOutputFormat)); if (settings.Threshold.HasValue) { if (settings.Threshold > 100) { throw new Exception("Threshold Percentage cannot be set as greater than 100%"); } builder.AppendProperty(nameof(CoverletSettings.Threshold), settings.Threshold.ToString()); if (settings.ThresholdType != ThresholdType.NotSet) { builder.AppendPropertyList(nameof(CoverletSettings.ThresholdType), SplitFlagEnum(settings.ThresholdType)); } } if (settings.CoverletOutputDirectory != null && string.IsNullOrEmpty(settings.CoverletOutputName)) { var directoryPath = settings.CoverletOutputDirectory .MakeAbsolute(cakeContext.Environment).FullPath; builder.AppendProperty("CoverletOutput", directoryPath); } else if (!string.IsNullOrEmpty(settings.CoverletOutputName)) { var dir = settings.CoverletOutputDirectory ?? project.GetDirectory(); var directoryPath = dir.MakeAbsolute(cakeContext.Environment).FullPath; var filepath = FilePath.FromString(settings.OutputTransformer(settings.CoverletOutputName, directoryPath)); builder.AppendProperty("CoverletOutput", filepath.MakeAbsolute(cakeContext.Environment).FullPath); } if (settings.ExcludeByFile.Count > 0) { builder.AppendPropertyList(nameof(CoverletSettings.ExcludeByFile), settings.ExcludeByFile); } if (settings.Exclude.Count > 0) { builder.AppendPropertyList(nameof(CoverletSettings.Exclude), settings.Exclude); } return(builder); IEnumerable <string> SplitFlagEnum(Enum @enum) => @enum.ToString().Split(',').Select(s => s.ToLowerInvariant()); }
public static ProcessArgumentBuilder ProcessMSBuildArguments( CoverletSettings settings, ICakeEnvironment cakeEnvironment, ProcessArgumentBuilder builder, FilePath project) { builder.AppendMSBuildProperty(nameof(CoverletSettings.CollectCoverage), settings.CollectCoverage.ToString()); builder.AppendPropertyList(nameof(CoverletSettings.CoverletOutputFormat), SplitFlagEnum(settings.CoverletOutputFormat)); if (settings.Threshold.HasValue) { if (settings.Threshold > 100) { throw new Exception("Threshold Percentage cannot be set as greater than 100%"); } builder.AppendMSBuildProperty(nameof(CoverletSettings.Threshold), settings.Threshold.ToString() !); if (settings.ThresholdType != ThresholdType.NotSet) { builder.AppendPropertyList(nameof(CoverletSettings.ThresholdType), SplitFlagEnum(settings.ThresholdType)); } } if (settings.CoverletOutputDirectory != null && string.IsNullOrEmpty(settings.CoverletOutputName)) { var directoryPath = settings.CoverletOutputDirectory .MakeAbsolute(cakeEnvironment).FullPath; builder.AppendMSBuildPropertyQuoted("CoverletOutput", directoryPath); } else if (!string.IsNullOrEmpty(settings.CoverletOutputName)) { var dir = settings.CoverletOutputDirectory ?? project.GetDirectory(); var directoryPath = dir.MakeAbsolute(cakeEnvironment).FullPath; var filepath = FilePath.FromString(settings.OutputTransformer(settings.CoverletOutputName, directoryPath)); builder.AppendMSBuildPropertyQuoted("CoverletOutput", filepath.MakeAbsolute(cakeEnvironment).FullPath); } if (settings.ExcludeByFile.Count > 0) { builder.AppendPropertyList(nameof(CoverletSettings.ExcludeByFile), settings.ExcludeByFile); } if (settings.Include.Count > 0) { builder.AppendPropertyList(nameof(CoverletSettings.Include), settings.Include); } if (settings.Exclude.Count > 0) { builder.AppendPropertyList(nameof(CoverletSettings.Exclude), settings.Exclude); } if (settings.ExcludeByAttribute.Count > 0) { builder.AppendPropertyList(nameof(CoverletSettings.ExcludeByAttribute), settings.ExcludeByAttribute); } if (settings.MergeWithFile != null && settings.MergeWithFile.GetExtension() == ".json") { builder.AppendMSBuildPropertyQuoted("MergeWith", settings.MergeWithFile.MakeAbsolute(cakeEnvironment).FullPath); } if (settings.IncludeTestAssembly.HasValue) { builder.AppendMSBuildProperty(nameof(CoverletSettings.IncludeTestAssembly), settings.IncludeTestAssembly.Value ? bool.TrueString : bool.FalseString); } return(builder); }