diff --git a/src/app/FakeLib/DotCover.fs b/src/app/FakeLib/DotCover.fs index cb075f937d2..ab547955366 100644 --- a/src/app/FakeLib/DotCover.fs +++ b/src/app/FakeLib/DotCover.fs @@ -5,6 +5,7 @@ open Fake open System open System.IO open System.Text +open Fake.Testing.XUnit2 type DotCoverReportType = | Html = 0 @@ -179,6 +180,35 @@ let DotCoverNUnit (setDotCoverParams: DotCoverParams -> DotCoverParams) (setNUni traceEndTask "DotCoverNUnit" details +/// Runs the dotCover "cover" command against the XUnit2 test runner. +/// ## Parameters +/// +/// - `setDotCoverParams` - Function used to overwrite the dotCover report default parameters. +/// - `setXUnit2Params` - Function used to overwrite the XUnit2 default parameters. +/// +/// ## Sample +/// +/// !! (buildDir @@ buildMode @@ "/*.Unit.Tests.dll") +/// |> DotCoverXUnit2 +/// (fun -> dotCoverOptions ) +/// (fun nUnitOptions -> nUnitOptions) +let DotCoverXUnit2 (setDotCoverParams: DotCoverParams -> DotCoverParams) (setXUnit2Params: XUnit2Params -> XUnit2Params) (assemblies: string seq) = + let assemblies = assemblies |> Seq.toArray + let details = assemblies |> separated ", " + traceStartTask "DotCoverXUnit2" details + + let parameters = XUnit2Defaults |> setXUnit2Params + let args = buildXUnit2Args assemblies parameters + + DotCover (fun p -> + {p with + TargetExecutable = parameters.ToolPath + TargetArguments = args + } |> setDotCoverParams) + + traceEndTask "DotCoverXUnit2" details + + /// Runs the dotCover "cover" command against the MSpec test runner. /// ## Parameters /// diff --git a/src/app/FakeLib/UnitTest/XUnit/XUnit2.fs b/src/app/FakeLib/UnitTest/XUnit/XUnit2.fs index d80c05a9e0f..4d54dd176b4 100644 --- a/src/app/FakeLib/UnitTest/XUnit/XUnit2.fs +++ b/src/app/FakeLib/UnitTest/XUnit/XUnit2.fs @@ -148,7 +148,7 @@ let XUnit2Defaults = Silent = false Wait = false } -let internal buildXUnit2Args assemblies parameters = +let buildXUnit2Args assemblies parameters = let formatTrait traitFlag (name, value) = sprintf @"%s ""%s=%s""" traitFlag name value let appendTraits traitsList traitFlag sb =