示例#1
0
 /**
  * @param DirectoryNode $node
  * @param string        $file
  */
 public function render(DirectoryNode $node, $file)
 {
     $classes = $node->getClassesAndTraits();
     $template = new \Text_Template($this->templatePath . 'dashboard.html', '{{', '}}');
     $this->setCommonTemplateVariables($template, $node);
     $baseLink = $node->getId() . '/';
     $complexity = $this->complexity($classes, $baseLink);
     $coverageDistribution = $this->coverageDistribution($classes);
     $insufficientCoverage = $this->insufficientCoverage($classes, $baseLink);
     $projectRisks = $this->projectRisks($classes, $baseLink);
     $template->setVar(['insufficient_coverage_classes' => $insufficientCoverage['class'], 'insufficient_coverage_methods' => $insufficientCoverage['method'], 'project_risks_classes' => $projectRisks['class'], 'project_risks_methods' => $projectRisks['method'], 'complexity_class' => $complexity['class'], 'complexity_method' => $complexity['method'], 'class_coverage_distribution' => $coverageDistribution['class'], 'method_coverage_distribution' => $coverageDistribution['method']]);
     $template->renderTo($file);
 }
示例#2
0
 /**
  * @param Directory $root
  * @param array     $items
  * @param array     $tests
  * @param bool      $cacheTokens
  */
 private function addItems(Directory $root, array $items, array $tests, $cacheTokens)
 {
     foreach ($items as $key => $value) {
         if (substr($key, -2) == '/f') {
             $key = substr($key, 0, -2);
             if (file_exists($root->getPath() . DIRECTORY_SEPARATOR . $key)) {
                 $root->addFile($key, $value, $tests, $cacheTokens);
             }
         } else {
             $child = $root->addDirectory($key);
             $this->addItems($child, $value, $tests, $cacheTokens);
         }
     }
 }
示例#3
0
 private function processDirectory(DirectoryNode $directory, Node $context)
 {
     $dirObject = $context->addDirectory($directory->getName());
     $this->setTotals($directory, $dirObject->getTotals());
     foreach ($directory as $node) {
         if ($node instanceof DirectoryNode) {
             $this->processDirectory($node, $dirObject);
             continue;
         }
         if ($node instanceof FileNode) {
             $this->processFile($node, $dirObject);
             continue;
         }
         throw new RuntimeException('Unknown node type for XML report');
     }
 }