/**
  * @param ProcessEvent $event
  */
 public function stopOnFailure(ProcessEvent $event)
 {
     /** @var ScenarioProcess $process */
     $process = $event->getProcess();
     if ($process->withError()) {
         $this->parallelProcessRunner->stop();
         $this->terminate(1);
     }
 }
Example #2
0
 protected function initParallelProcessRunner()
 {
     $this->parallelProcessRunner = new ParallelProcessRunner();
     $this->parallelProcessRunner->setMaxParallelProcess(2);
     $this->parallelProcessRunner->setStatusCheckWait(15);
     $this->parallelProcessRunner->getEventDispatcher()->addSubscriber(new ParallelProcessSubscriber($this->getSymfonyStyle(), $this->getProgressBarHelper()));
 }
 /**
  * @param ScenarioInfo[] $scenarios
  *
  * @return int
  */
 protected function runScenarios(array $scenarios)
 {
     $result = 0;
     /** @var ScenarioProcess[] $processes */
     $processes = array_map(function (ScenarioInfo $scenarioInfo) {
         return $this->scenarioProcessFactory->make($scenarioInfo);
     }, $scenarios);
     $this->parallelProcessRunner->reset()->add($processes)->run();
     foreach ($processes as $process) {
         $result = max($result, $process->getExitCode());
     }
     return $result;
 }
 /**
  * @param array  $processes
  * @param string $hookedEventName
  *
  * @return ProcessEvent[]
  */
 protected function hookEventsByName(array $processes, $hookedEventName)
 {
     $events = [];
     $eventDispatcher = $this->getMock(EventDispatcher::class, ['dispatch']);
     $eventDispatcher->expects($this->any())->method('dispatch')->willReturnCallback(function ($evenName, $event) use(&$events, $hookedEventName) {
         if ($hookedEventName == $evenName) {
             $events[] = $event;
         }
     });
     $runner = new ParallelProcessRunner($eventDispatcher);
     $runner->add($processes)->run();
     return $events;
 }