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")}' @{/* k-test Run unit tests in your project. projectFile='' Required. Path to the test project.json to execute */} @{ 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 : new Dictionary(); 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 : new Dictionary { { "dnx451", new Dictionary() } // Assume dnx451 only if none specified }; // Currently only dnx* targets are supported. See aspnet/Universe#53 var targetFrameworks = configs.Keys.Where(k => k.StartsWith("dnx", StringComparison.OrdinalIgnoreCase)); foreach (var framework in targetFrameworks) { var testArgs = (IsMono || noParallelTestProjects.Contains(projectName)) ? " -parallel none" : ""; if (!framework.StartsWith("dnxcore", StringComparison.OrdinalIgnoreCase)) { K(("test" + testArgs), projectFolder, ""); } else if (!IsMono) { K(("test" + testArgs), projectFolder, "default -runtime CoreCLR"); } } } } macro name='K' command='string' workingdir='string' dnvmUse='string' k