diff --git a/src/app/FakeLib/ReportGeneratorHelper.fs b/src/app/FakeLib/ReportGeneratorHelper.fs index 22c8720263f..fcf8e0f5b95 100644 --- a/src/app/FakeLib/ReportGeneratorHelper.fs +++ b/src/app/FakeLib/ReportGeneratorHelper.fs @@ -1,4 +1,4 @@ -/// Contains a task which can be used to run [ReportGenerator](https://reportgenerator.codeplex.com), +/// Contains a task which can be used to run [ReportGenerator](https://github.com/danielpalme/ReportGenerator), /// which converts XML reports generated by PartCover, OpenCover or NCover into a readable report in various formats. module Fake.ReportGeneratorHelper @@ -29,6 +29,9 @@ type ReportGeneratorParams = ReportTypes : ReportGeneratorReportType list /// Optional directories which contain the corresponding source code. SourceDirs : string list + /// Optional directory for storing persistent coverage information. + /// Can be used in future reports to show coverage evolution. + HistoryDir : string /// Optional list of assemblies that should be included or excluded /// in the report. Exclusion filters take precedence over inclusion /// filters. Wildcards are allowed. @@ -46,6 +49,7 @@ let ReportGeneratorDefaultParams = TargetDir = currentDirectory ReportTypes = [ ReportGeneratorReportType.Html ] SourceDirs = [] + HistoryDir = String.Empty Filters = [] LogVerbosity = ReportGeneratorLogVerbosity.Verbose WorkingDir = currentDirectory @@ -63,6 +67,7 @@ let buildReportGeneratorArgs parameters (reports : string seq) = |> append (sprintf "-targetdir:%s" parameters.TargetDir) |> appendWithoutQuotes (sprintf "-reporttypes:%s" (String.Join(";", reportTypes))) |> appendIfTrue (parameters.SourceDirs.Length > 0) sourceDirs + |> appendStringIfValueIsNotNullOrEmpty (parameters.HistoryDir) (sprintf "-historydir:%s" parameters.HistoryDir) |> appendIfTrue (parameters.Filters.Length > 0) filters |> appendWithoutQuotes (sprintf "-verbosity:%s" (parameters.LogVerbosity.ToString())) |> toText diff --git a/src/test/Test.FAKECore/ReportGeneratorHelperSpecs.cs b/src/test/Test.FAKECore/ReportGeneratorHelperSpecs.cs index c5b867730df..9fda347ced5 100644 --- a/src/test/Test.FAKECore/ReportGeneratorHelperSpecs.cs +++ b/src/test/Test.FAKECore/ReportGeneratorHelperSpecs.cs @@ -49,6 +49,7 @@ internal class when_executing_with_default_arguments : BuildReportArgumentsSpecs }; It should_not_append_source_dirs = () => Arguments.ShouldNotContain("-sourcedirs:"); It should_not_append_filters = () => Arguments.ShouldNotContain("-filters:"); + It should_not_append_history_dir = () => Arguments.ShouldNotContain("-historydir:"); It should_have_a_log_verbosity_of_verbose = () => Arguments.ShouldContain("-verbosity:Verbose"); } @@ -104,4 +105,12 @@ internal class when_given_one_or_more_filters : BuildReportArgumentsSpecs It should_append_filters_with_quotes = () => Arguments.ShouldContain("\"-filters:+Included;-Excluded\""); } + + internal class when_given_history_directory : BuildReportArgumentsSpecs + { + Establish context = + () => Parameters = Parameters.With(p => p.HistoryDir, "./history/"); + + It should_append_history_dir = () => Arguments.ShouldContain("-historydir:./history/"); + } }