Skip to content

Instantly share code, notes, and snippets.

@cdroulers
Created May 7, 2015 00:11
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cdroulers/530d4ef4e0ee07c98a1e to your computer and use it in GitHub Desktop.
Save cdroulers/530d4ef4e0ee07c98a1e to your computer and use it in GitHub Desktop.
FAKE target to run code coverage on NUnit tests
open Fake.OpenCoverHelper
let buildDir = "./build/"
let coverageDir = buildDir + "coverage/"
let testsDir = buildDir + "tests/"
Target "RunNUnitTests" (fun _ ->
let assembliesToTest = (" ", (!! (buildDir + "/*.Tests.dll"))) |> System.String.Join
CreateDir coverageDir
CreateDir testsDir
let nCoverDir = coverageDir + "ncover/"
CreateDir nCoverDir
trace "Run OpenCover with NUnit"
OpenCover
(fun p -> {
p with
ExePath = "./packages/OpenCover/OpenCover.Console.exe"
TestRunnerExePath = "./packages/NUnit.Runners/tools/nunit-console.exe"
Output = coverageDir + "results.xml"
Register = RegisterUser
Filter = "+[*]* -[*.Tests*]*"
})
("/nologo /noshadow /framework=net-4.5.1 /result=" + testsDir + "nunit-results.xml /output=" + testsDir + "nunit-output.txt " + assembliesToTest)
trace "Generate OpenCover report"
PowerShell.Create()
.AddScript(@".\packages\ReportGenerator\ReportGenerator.exe " + coverageDir + "results.xml " + coverageDir + "html")
.Invoke()
|> Seq.iter (printfn "%O")
trace "Generate NCover output"
let xslDoc = new System.Xml.Xsl.XslCompiledTransform()
xslDoc.Load "opencover-to-ncover.xslt"
xslDoc.Transform(coverageDir + "results.xml", nCoverDir + "results.xml")
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment