From c86e750281480fd960d3b5a47d9df11a4969d3b0 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Mon, 19 Sep 2016 17:01:13 -0500 Subject: [PATCH] Add OpenCover coverage testing for Windows builds. --- build.cake | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/build.cake b/build.cake index d97d17218c..6192e0f88d 100644 --- a/build.cake +++ b/build.cake @@ -10,6 +10,7 @@ /////////////////////////////////////////////////////////////////////////////// #tool "nuget:?package=xunit.runner.console&version=2.1.0" +#tool "nuget:?package=OpenCover" /////////////////////////////////////////////////////////////////////////////// // USINGS @@ -670,18 +671,35 @@ Task("Run-Unit-Tests") "./tools/xunit.runner.console/tools/xunit.console.x86.exe" : "./tools/xunit.runner.console/tools/xunit.console.exe"; - var settings = new XUnit2Settings + var xUnitSettings = new XUnit2Settings { ToolPath = toolPath, - Parallelism = ParallelismOption.None + Parallelism = ParallelismOption.None, + ShadowCopy = false }; - settings.NoAppDomain = !isRunningOnWindows; + xUnitSettings.NoAppDomain = !isRunningOnWindows; + + var openCoverOutput = artifactsDir.GetFilePath(new FilePath("./result.xml")); + var openCoverSettings = new OpenCoverSettings + { + ArgumentCustomization = openCoverArgs => openCoverArgs.AppendSwitch("-mergeoutput", "") + } + .WithFilter("+[Avalonia.*]* -[*Test*]*");; foreach (var file in unitTests) { Information("Running test " + file.GetFilenameWithoutExtension()); - XUnit2(file.FullPath, settings); + if(isRunningOnWindows) + { + OpenCover(context => { + context.XUnit2(file.FullPath, xUnitSettings); + }, openCoverOutput, openCoverSettings); + } + else + { + XUnit2(file.FullPath, xUnitSettings); + } } });