/// <summary> /// Provides a test batching strategy based on the provided arguments /// </summary> /// <param name="strategy">The base strategy to provide</param> /// <param name="settings">Adapter settings currently in use</param> /// <returns>An ITestBatchingStrategy instance or null if one cannot be provided</returns> private ITestBatchingStrategy GetBatchStrategy(TestBatch.Strategy strategy, BoostTestAdapterSettings settings) { TestBatch.CommandLineArgsBuilder argsBuilder = GetDefaultArguments; if (strategy != Strategy.TestCase) { argsBuilder = GetBatchedTestRunsArguments; } switch (strategy) { case Strategy.Source: return(new SourceTestBatchStrategy(this._testRunnerFactory, settings, argsBuilder)); case Strategy.TestSuite: return(new TestSuiteTestBatchStrategy(this._testRunnerFactory, settings, argsBuilder)); case Strategy.TestCase: return(new IndividualTestBatchStrategy(this._testRunnerFactory, settings, argsBuilder)); } return(null); }
/// <summary> /// Provides a test batching strategy based on the provided arguments /// </summary> /// <param name="strategy">The base strategy to provide</param> /// <param name="settings">Adapter settings currently in use</param> /// <param name="runContext">The RunContext for this TestCase. Determines whether the test should be debugged or not.</param> /// <returns>An ITestBatchingStrategy instance or null if one cannot be provided</returns> private ITestBatchingStrategy GetBatchStrategy(TestBatch.Strategy strategy, BoostTestAdapterSettings settings, IRunContext runContext) { TestBatch.CommandLineArgsBuilder argsBuilder = (string _source, BoostTestAdapterSettings _settings) => { return(GetDefaultArguments(_source, _settings, runContext.IsBeingDebugged)); }; if (strategy != Strategy.TestCase) { // Disable stdout, stderr and memory leak detection since it is difficult // to distinguish from which test does portions of the output map to argsBuilder = (string _source, BoostTestAdapterSettings _settings) => { var args = GetDefaultArguments(_source, _settings, runContext.IsBeingDebugged); // Disable standard error/standard output capture args.StandardOutFile = null; args.StandardErrorFile = null; // Disable memory leak detection args.DetectMemoryLeaks = 0; return(args); }; } switch (strategy) { case Strategy.Source: return(new SourceTestBatchStrategy(_testRunnerFactory, settings, argsBuilder)); case Strategy.TestSuite: return(new TestSuiteTestBatchStrategy(_testRunnerFactory, settings, argsBuilder)); case Strategy.TestCase: return(new IndividualTestBatchStrategy(_testRunnerFactory, settings, argsBuilder)); case Strategy.One: return(new OneShotTestBatchStrategy(_testRunnerFactory, settings, argsBuilder)); } return(null); }