示例#1
0
 /**
  * Genera una TestSuite con los TestCase definidos para esta aplicacion.
  */
 public function loadTests()
 {
     $dir = dir($this->path . '/tests');
     $testCases = array();
     // Recorre directorio de la aplicacion
     while (false !== ($test = $dir->read())) {
         //echo $test.'<br/>';
         // Se queda solo con los nombres de los directorios
         if (is_file($this->path . '/tests/' . $test) && String::endsWith($test, 'class.php')) {
             $testCases[] = $test;
         }
     }
     // Crea instancias de las clases testcase
     $suite = new TestSuite();
     foreach ($testCases as $testCaseFile) {
         $fi = FileNames::getFilenameInfo($testCaseFile);
         $clazz = $fi['name'];
         //print_r($fi);
         YuppLoader::load($fi['package'], $clazz);
         $suite->addTestCase(new $clazz($suite));
     }
     return $suite;
 }
示例#2
0
 private function _loadModelRecursive($model_path)
 {
     $dir = dir($model_path);
     while (false !== ($entry = $dir->read())) {
         if (is_dir($model_path . '/' . $entry) && !String::startsWith($entry, ".")) {
             self::_loadModelRecursive($model_path . "/" . $entry);
             // recursivo
         } else {
             if (!String::startsWith($entry, ".")) {
                 $finfo = FileNames::getFilenameInfo($entry);
                 if ($finfo) {
                     // Al cargar una clase, esta podria cargar otras, si se declaran loads en esa clase,
                     // por lo que verificando si la clase ya esta cargada antes de intentar cargarla de
                     // nuevo, ahorraria esos loads en cascada.
                     if (!$this->isLoadedClass($finfo['package'], $finfo['name'])) {
                         $this->load($finfo['package'], $finfo['name']);
                     }
                 }
             }
         }
     }
     $dir->close();
 }