diff --git a/src/NUnitConsole/nunit3-console/ConsoleOptions.cs b/src/NUnitConsole/nunit3-console/ConsoleOptions.cs index 12c7b448c..e2edfe305 100644 --- a/src/NUnitConsole/nunit3-console/ConsoleOptions.cs +++ b/src/NUnitConsole/nunit3-console/ConsoleOptions.cs @@ -79,6 +79,8 @@ public ConsoleOptions(params string[] args) : base(args) { } public bool SkipNonTestAssemblies { get; private set; } + public bool Preload { get; private set; } + private int _maxAgents = -1; public int MaxAgents { get { return _maxAgents; } } public bool MaxAgentsSpecified { get { return _maxAgents >= 0; } } @@ -156,6 +158,9 @@ protected override void ConfigureOptions() this.Add("skipnontestassemblies", "Skip any non-test assemblies specified, without error.", v => SkipNonTestAssemblies = v != null); + this.Add("preload", "Enumerate all tests before execution.", + v => Preload = v != null); + this.Add("agents=", "Specify the maximum {NUMBER} of test assembly agents to run at one time. If not specified, there is no limit.", v => _maxAgents = RequiredInt(v, "--agents")); diff --git a/src/NUnitConsole/nunit3-console/ConsoleRunner.cs b/src/NUnitConsole/nunit3-console/ConsoleRunner.cs index 8b7e065ec..73901281b 100644 --- a/src/NUnitConsole/nunit3-console/ConsoleRunner.cs +++ b/src/NUnitConsole/nunit3-console/ConsoleRunner.cs @@ -213,6 +213,8 @@ private int RunTests(TestPackage package, TestFilter filter) { var eventHandler = new TestEventHandler(output, labels); + if (_options.Preload) + runner.Load(); result = runner.Run(eventHandler, filter); } } diff --git a/src/NUnitEngine/nunit.engine/Runners/MasterTestRunner.cs b/src/NUnitEngine/nunit.engine/Runners/MasterTestRunner.cs index ce7fe13d6..264edef49 100644 --- a/src/NUnitEngine/nunit.engine/Runners/MasterTestRunner.cs +++ b/src/NUnitEngine/nunit.engine/Runners/MasterTestRunner.cs @@ -98,7 +98,7 @@ protected bool IsPackageLoaded public XmlNode Load() { LoadResult = _engineRunner.Load(); - return LoadResult.Xml; + return LoadResult.IsSingle ? LoadResult.Xml : null; } ///