use namespace='System.Web.Script.Serialization' use assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" @{/* 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); object configsObject; var configs = project.TryGetValue("configurations", out configsObject) ? (Dictionary)configsObject : new Dictionary { { "net45", new Dictionary() }, { "k10", new Dictionary() } }; // Currently only net* and k* targets are supported. See aspnet/Universe#53 var targetFrameworks = configs.Keys.Where(k => k.StartsWith("net", StringComparison.OrdinalIgnoreCase) || k.StartsWith("k", StringComparison.OrdinalIgnoreCase)); try { foreach (var framework in targetFrameworks) { if (framework.StartsWith("net", StringComparison.OrdinalIgnoreCase)) { UseSvr50(); } else { UseSvrc50(); } K("test", projectFolder); } } finally { UseSvr50(); } } } macro name='K' command='string' workingdir='string' k macro name='UseSvr50' exec program='cmd' commandline='/C kvm use default -svr50 -x86' if='!IsMono' exec program='kvm' commandline='use default -svr50 -x86' if='IsMono' macro name='UseSvrc50' exec program='cmd' commandline='/C kvm use default -svrc50 -x86' if='!IsMono' exec program='kvm' commandline='use default -svrc50 -x86' if='IsMono'