Пример #1
0
 public function suite()
 {
     $reporter = new Reporter('', $this->config['api_key'], new Client());
     foreach ($this->testCollections as $testCollection => $testConfigs) {
         $failed = false;
         $message = "Failed running '" . $testCollection . "' in " . basename($testConfigs['file']) . "<ul>";
         foreach ($testConfigs['tests'] as $testName) {
             $failed = true;
             $message .= '<li>' . $testName['name'] . " <br>Step: " . $testName['lastStep'] . ').</li>';
         }
         $message .= '</ul>';
         if ($failed) {
             $status = Event::STATUS_FAILURE;
         } else {
             $status = Event::STATUS_SUCCESS;
             $message = '';
         }
         $url = '';
         if (array_key_exists('url', $this->config)) {
             $url = $this->config['url'];
         }
         $tool = 'Codeception';
         if (array_key_exists('tool', $this->config)) {
             $tool = $this->config['tool'];
         }
         $event = new Event('Codeception_' . $testCollection, $this->config['system'], $status, $tool, $message, '', $url);
         $reporter->sendEvent($event);
     }
 }
Пример #2
0
 private function send($identifier, $system, $message, $status, $url = '', $value = 0, $tool = null)
 {
     if (is_null($tool)) {
         $tool = $this->tool;
     }
     $event = new Event($identifier, $system, $status, $tool, $message, $value);
     $this->reporter->sendEvent($event);
 }
 public function suite()
 {
     $tool = 'Codeception';
     $koalamonServer = 'http://monitor.koalamon.com';
     if (array_key_exists('server', $this->config)) {
         $koalamonServer = $this->config['server'];
     }
     $reporter = new Reporter('', $this->getApiKey(), new Client(), $koalamonServer);
     $url = $this->getUrl();
     if (array_key_exists('tool', $this->config)) {
         $tool = $this->config['tool'];
     }
     foreach ($this->testCollections as $testCollection => $testConfigs) {
         $failed = false;
         $message = "Failed running '" . $testCollection . "' in " . basename($testConfigs['file']) . "<ul>";
         foreach ($testConfigs['tests'] as $testName) {
             $failed = true;
             $message .= '<li>' . $testName['name'] . " <br>Step: " . $testName['lastStep'] . ').</li>';
         }
         $message .= '</ul>';
         if ($failed) {
             $status = Event::STATUS_FAILURE;
         } else {
             $status = Event::STATUS_SUCCESS;
             $message = '';
         }
         $system = $this->getSystem();
         $eventIdentifier = $tool . '_' . $system . '_' . $testCollection;
         $event = new Event($eventIdentifier, $system, $status, $tool, $message, '', $url);
         $reporter->sendEvent($event);
     }
 }
Пример #4
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $output->writeln("\n  <info>Checking " . $input->getArgument('url') . "</info>\n");
     if ($input->getOption('retriever') === 'chrome') {
         $errorRetriever = new ChromeErrorRetriever($input->getOption('selenium_server'), $input->getOption('selenium_server_port'));
     } else {
         $errorRetriever = new PhantomErrorRetriever($input->getOption('phantomjs_exec'));
     }
     /** @var ErrorRetriever $errorRetriever */
     $errors = $errorRetriever->getErrors(new Uri($input->getArgument('url')));
     $ignoredFiles = [];
     if ($input->getOption('options')) {
         $optionArray = json_decode($input->getOption('options'), true);
         if (is_array($optionArray)) {
             if (array_key_exists('excludedFiles', $optionArray)) {
                 foreach ($optionArray['excludedFiles'] as $excludedFile) {
                     $ignoredFiles[] = $excludedFile['filename'];
                 }
             }
         }
     }
     $errorFound = false;
     $status = Event::STATUS_FAILURE;
     if (count($errors) > 0) {
         $errorMsg = 'JavaScript errors (' . count($errors) . ') were found on ' . $input->getArgument('url') . '<ul>';
         foreach ($errors as $error) {
             $ignored = false;
             foreach ($ignoredFiles as $ignoredFile) {
                 if (preg_match('^' . $ignoredFile . '^', $error)) {
                     $ignored = true;
                 }
             }
             if (!$ignored) {
                 $output->writeln('  - ' . $error);
                 $errorMsg .= '<li>' . $error . '</li>';
                 $errorFound = true;
             }
         }
         $errorMsg .= '</ul>';
     }
     if (!$errorFound) {
         $output->writeln('   No errors found.');
         $errorMsg = 'No javascript errors found for ' . $input->getArgument('url');
         $status = Event::STATUS_SUCCESS;
     }
     if ($input->getOption('koalamon_project_api_key')) {
         if ($input->getOption('koalamon_server')) {
             $reporter = new Reporter($input->getOption('koalamon_project'), $input->getOption('koalamon_project_api_key'), new Client(), $input->getOption('koalamon_server'));
         } else {
             $reporter = new Reporter($input->getOption('koalamon_project'), $input->getOption('koalamon_project_api_key'), new Client());
         }
         if ($input->getOption('koalamon_system')) {
             $system = $input->getOption('koalamon_system');
         } else {
             $system = str_replace('http://', '', $input->getArgument('url'));
         }
         $event = new Event('JsErrorScanner_' . $input->getArgument('url'), $system, $status, 'JsErrorScanner', $errorMsg, count($errors), null, $input->getOption('component'));
         try {
             $reporter->sendEvent($event);
         } catch (KoalamonException $e) {
             $output->writeln('');
             $output->writeln('<error> ' . $e->getMessage() . ' </error>');
             $output->writeln(' Url: ' . $e->getUrl());
             $output->writeln(' Payload: ' . $e->getPayload());
         }
     }
     $output->writeln('');
 }