示例#1
0
文件: Runner.php 项目: slince/runner
 /**
  * 执行测试
  * @param Examination $examination
  * @return bool
  */
 function executeExamination(Examination $examination)
 {
     //触发测试开始事件
     $this->dispatcher->dispatch(self::EVENT_EXAMINATION_EXECUTE, new Event(self::EVENT_EXAMINATION_EXECUTE, $this, ['examination' => $examination]));
     //请求api
     try {
         $response = $this->requestApi($examination->getApi());
     } catch (\Exception $e) {
         //如果接口请求的过程中出现异常,则终止测试过程
         $examination->executed(Examination::STATUS_INTERRUPT);
         $examination->getReport()->write('exception', $e);
         return false;
     }
     $examination->getReport()->write('response', $response);
     //提取捕获参数
     $this->extractArguments($examination, $response);
     //执行断言
     $this->runAssertions($examination, $response);
     //触发测试结束事件
     $this->dispatcher->dispatch(self::EVENT_EXAMINATION_EXECUTED, new Event(self::EVENT_EXAMINATION_EXECUTED, $this, ['examination' => $examination]));
 }