From e3bccdb3b1ea21943dbc3984e69a3a7a56982771 Mon Sep 17 00:00:00 2001 From: mikary Date: Tue, 12 May 2015 12:35:21 -0700 Subject: [PATCH] Support single threaded running of specific test projects through environment --- build/_k-test.shade | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/build/_k-test.shade b/build/_k-test.shade index 364bf3ef66..431bf4a817 100644 --- a/build/_k-test.shade +++ b/build/_k-test.shade @@ -1,5 +1,8 @@ use namespace='System.Web.Script.Serialization' use assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" +use import="Environment" + +default NO_PARALLEL_TEST_PROJECTS='${E("NO_PARALLEL_TEST_PROJECTS")}' @{/* @@ -15,7 +18,7 @@ projectFile='' var serializer = new JavaScriptSerializer(); var projectText = File.ReadAllText(projectFile); var project = (Dictionary)serializer.DeserializeObject(projectText); - + object commandsObject; var commands = project.TryGetValue("commands", out commandsObject) ? (Dictionary)commandsObject @@ -24,7 +27,14 @@ projectFile='' if (commands.Keys.Contains("test")) { var projectFolder = Path.GetDirectoryName(projectFile); - + var projectName = Path.GetFileName(projectFolder); + + var noParallelTestProjects = new HashSet(StringComparer.OrdinalIgnoreCase); + if (!string.IsNullOrEmpty(NO_PARALLEL_TEST_PROJECTS)) + { + noParallelTestProjects.UnionWith(NO_PARALLEL_TEST_PROJECTS.Split((char)',')); + } + object configsObject; var configs = project.TryGetValue("frameworks", out configsObject) ? (Dictionary)configsObject @@ -38,7 +48,7 @@ projectFile='' foreach (var framework in targetFrameworks) { - var testArgs = IsMono ? " -parallel none" : ""; + var testArgs = (IsMono || noParallelTestProjects.Contains(projectName)) ? " -parallel none" : ""; if (!framework.StartsWith("dnxcore", StringComparison.OrdinalIgnoreCase)) { @@ -46,7 +56,7 @@ projectFile='' } else if (!IsMono) { - K("test", projectFolder, "default -runtime CoreCLR"); + K(("test" + testArgs), projectFolder, "default -runtime CoreCLR"); } } }