From 2383c49f267d39fd00cd079de1418b6c93e06379 Mon Sep 17 00:00:00 2001 From: irongut Date: Wed, 14 Apr 2021 22:29:25 +0100 Subject: [PATCH] added output type arg --- src/CodeCoverageSummary/CommandLineOptions.cs | 3 +++ src/CodeCoverageSummary/Program.cs | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/CodeCoverageSummary/CommandLineOptions.cs b/src/CodeCoverageSummary/CommandLineOptions.cs index 7bce780..bf43140 100644 --- a/src/CodeCoverageSummary/CommandLineOptions.cs +++ b/src/CodeCoverageSummary/CommandLineOptions.cs @@ -12,5 +12,8 @@ namespace CodeCoverageSummary [Option(shortName: 'b', longName: "badge", Required = false, HelpText = "Include a badge in the output - true / false (default).", Default = false)] public bool Badge { get; set; } + + [Option(shortName: 'o', longName: "output", Required = false, HelpText = "Output Type - console (default), file or both.", Default = "console")] + public string Output { get; set; } } } diff --git a/src/CodeCoverageSummary/Program.cs b/src/CodeCoverageSummary/Program.cs index fb4affa..94f0a0f 100644 --- a/src/CodeCoverageSummary/Program.cs +++ b/src/CodeCoverageSummary/Program.cs @@ -47,9 +47,10 @@ namespace CodeCoverageSummary } StringBuilder summaryText = new(); + string fileExt = "txt"; if (o.Format.Equals("text", StringComparison.OrdinalIgnoreCase)) { - if (string.IsNullOrWhiteSpace(badgeUrl)) + if (!string.IsNullOrWhiteSpace(badgeUrl)) { summaryText.AppendLine(badgeUrl); } @@ -65,6 +66,8 @@ namespace CodeCoverageSummary } else if (o.Format.Equals("md", StringComparison.OrdinalIgnoreCase) || o.Format.Equals("markdown", StringComparison.OrdinalIgnoreCase)) { + fileExt = "md"; + if (!string.IsNullOrWhiteSpace(badgeUrl)) { summaryText.AppendLine($"![Code Coverage]({badgeUrl})"); @@ -87,7 +90,16 @@ namespace CodeCoverageSummary return -2; // error } - Console.WriteLine(summaryText.ToString()); + if (o.Output.Equals("console", StringComparison.OrdinalIgnoreCase) || o.Output.Equals("both", StringComparison.OrdinalIgnoreCase)) + { + Console.WriteLine(summaryText.ToString()); + } + + if (o.Output.Equals("file", StringComparison.OrdinalIgnoreCase) || o.Output.Equals("both", StringComparison.OrdinalIgnoreCase)) + { + File.WriteAllText($"code-coverage-results.{fileExt}", summaryText.ToString()); + } + return 0; // success } }