public run_command_integration_specs()
        {
            TestUtility.CleanUpHangingProcesses();

            var directory = TestingContext.FindParallelDirectory("Storyteller.Samples");


            var project = Project.LoadForFolder(directory);
#if NET46       
            theController = new EngineController(project, new AppDomainSystemLauncher(project));
#else
            throw new NotImplementedException("Not done yet for CoreCLR");
#endif

            theInput = new RunInput { Path = directory, RetriesFlag = 1 };
            theController = theInput.BuildEngine();
            var task = theController.Start();
            task.Wait(3.Seconds());

            theFixtures = task.Result.fixtures;
        }
        private BatchRunResponse execute(Action<RunInput> configure)
        {
            var path = TestingContext.FindParallelDirectory("Storyteller.Samples");


            var input = new RunInput
            {
                Path = path
            };

            configure(input);

            var controller = input.BuildEngine();
            var task = controller.Start().ContinueWith(t =>
            {
                var systemRecycled = t.Result;
                if (!systemRecycled.success)
                {
                    systemRecycled.WriteSystemUsage();
                    throw new Exception("Unable to start the system");
                }

                

                return input.StartBatch(controller);

            });

            task.Wait();

            task.Result.Wait();

            controller.Dispose();

            return task.Result.Result;
        }