Support single threaded running of specific test projects through environment
This commit is contained in:
parent
9b07b0cddc
commit
e3bccdb3b1
|
|
@ -1,5 +1,8 @@
|
||||||
use namespace='System.Web.Script.Serialization'
|
use namespace='System.Web.Script.Serialization'
|
||||||
use assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
|
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 serializer = new JavaScriptSerializer();
|
||||||
var projectText = File.ReadAllText(projectFile);
|
var projectText = File.ReadAllText(projectFile);
|
||||||
var project = (Dictionary<string, object>)serializer.DeserializeObject(projectText);
|
var project = (Dictionary<string, object>)serializer.DeserializeObject(projectText);
|
||||||
|
|
||||||
object commandsObject;
|
object commandsObject;
|
||||||
var commands = project.TryGetValue("commands", out commandsObject)
|
var commands = project.TryGetValue("commands", out commandsObject)
|
||||||
? (Dictionary<string, object>)commandsObject
|
? (Dictionary<string, object>)commandsObject
|
||||||
|
|
@ -24,7 +27,14 @@ projectFile=''
|
||||||
if (commands.Keys.Contains("test"))
|
if (commands.Keys.Contains("test"))
|
||||||
{
|
{
|
||||||
var projectFolder = Path.GetDirectoryName(projectFile);
|
var projectFolder = Path.GetDirectoryName(projectFile);
|
||||||
|
var projectName = Path.GetFileName(projectFolder);
|
||||||
|
|
||||||
|
var noParallelTestProjects = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
if (!string.IsNullOrEmpty(NO_PARALLEL_TEST_PROJECTS))
|
||||||
|
{
|
||||||
|
noParallelTestProjects.UnionWith(NO_PARALLEL_TEST_PROJECTS.Split((char)','));
|
||||||
|
}
|
||||||
|
|
||||||
object configsObject;
|
object configsObject;
|
||||||
var configs = project.TryGetValue("frameworks", out configsObject)
|
var configs = project.TryGetValue("frameworks", out configsObject)
|
||||||
? (Dictionary<string, object>)configsObject
|
? (Dictionary<string, object>)configsObject
|
||||||
|
|
@ -38,7 +48,7 @@ projectFile=''
|
||||||
|
|
||||||
foreach (var framework in targetFrameworks)
|
foreach (var framework in targetFrameworks)
|
||||||
{
|
{
|
||||||
var testArgs = IsMono ? " -parallel none" : "";
|
var testArgs = (IsMono || noParallelTestProjects.Contains(projectName)) ? " -parallel none" : "";
|
||||||
|
|
||||||
if (!framework.StartsWith("dnxcore", StringComparison.OrdinalIgnoreCase))
|
if (!framework.StartsWith("dnxcore", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
|
|
@ -46,7 +56,7 @@ projectFile=''
|
||||||
}
|
}
|
||||||
else if (!IsMono)
|
else if (!IsMono)
|
||||||
{
|
{
|
||||||
K("test", projectFolder, "default -runtime CoreCLR");
|
K(("test" + testArgs), projectFolder, "default -runtime CoreCLR");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue