Exemple #1
0
        public TestRunResults[] RunTests(TestRunInfo[] runInfos, Action <AutoTest.TestRunners.Shared.Targeting.Platform, Version, Action <ProcessStartInfo, bool> > processWrapper, Func <bool> abortWhen)
        {
            var options = generateOptions(runInfos);

            if (options == null)
            {
                return new TestRunResults[] { }
            }
            ;
            AutoTestRunnerFeedback feedback = null;

            if (_handleRunnerFeedback)
            {
                feedback = new AutoTestRunnerFeedback(_runCache, _bus, options);
            }
            var runner = new TestRunProcess(feedback)
                         .WrapTestProcessWith(processWrapper)
                         .AbortWhen(abortWhen);

            if (_configuration.RunAssembliesInParallel)
            {
                runner.RunParallel();
            }
            if (_configuration.TestRunnerCompatibilityMode)
            {
                runner.RunInCompatibilityMode();
            }
            var tests = runner.ProcessTestRuns(options);

            return(getResults(tests, runInfos).ToArray());
        }