Esempio n. 1
0
 function generar_layout()
 {
     $selecciones = $this->controlador->get_selecciones();
     echo "<div style='background-color: white; border: 1px solid black; text-align: left; padding: 15px'>";
     try {
         //Se construye un suite por categoria que tenga test seleccionados
         foreach (toba_test_lista_casos::get_categorias() as $categoria) {
             $test = new GroupTest($categoria['nombre']);
             $hay_uno = false;
             foreach (toba_test_lista_casos::get_casos() as $caso) {
                 if ($caso['categoria'] == $categoria['id'] && in_array($caso['id'], $selecciones['casos'])) {
                     $hay_uno = true;
                     require_once $caso['archivo'];
                     $test->addTestCase(new $caso['id']($caso['nombre']));
                 }
             }
             if ($hay_uno) {
                 //--- COBERTURA DE CODIGO (OPCIONAL) ----
                 if (function_exists('xdebug_start_code_coverage')) {
                     xdebug_start_code_coverage();
                 }
                 //-------
                 $test->run(new toba_test_reporter());
                 //--- COBERTURA DE CODIGO (OPCIONAL) ----
                 $arch = 'PHPUnit2/Util/CodeCoverage/Renderer.php';
                 $existe = toba_manejador_archivos::existe_archivo_en_path($arch);
                 if (function_exists('xdebug_start_code_coverage') && $existe) {
                     require_once $arch;
                     $cubiertos = xdebug_get_code_coverage();
                     //Se limpian las referencias a simpletest y a librerias de testing en gral.
                     $archivos = array();
                     foreach (array_keys($cubiertos) as $archivo) {
                         if (!strpos($archivo, 'simpletest') && !strpos($archivo, 'PHPUnit') && !strpos($archivo, 'testing_automatico/') && !strpos($archivo, '/test_')) {
                             $archivos[$archivo] = $cubiertos[$archivo];
                         }
                     }
                     $cc = PHPUnit2_Util_CodeCoverage_Renderer::factory('HTML', array('tests' => $archivos));
                     $path_temp = toba::proyecto()->get_path_temp_www();
                     $salida = $path_temp['real'] . '/cobertura.html';
                     $cc->renderToFile($salida);
                     echo "<a href='{$path_temp['browser']}/cobertura.html' target='_blank'>Ver cobertura de código</a>";
                 }
                 //-------
             }
         }
     } catch (Exception $e) {
         if (method_exists($e, 'mensaje_web')) {
             echo ei_mensaje($e->mensaje_web(), 'error');
         } else {
             echo $e;
         }
     }
     echo '</div><br>';
     $this->dep('lista_archivos')->generar_html();
 }
Esempio n. 2
0
 /**
  * Ejecuta la batería de test automáticos de un proyecto
  * @consola_parametros Parámetros: -p Proyecto [-c Cat] [-t Caso] 
  */
 function opcion__automaticos()
 {
     $path_autoload_sel = '/php/testing/selenium/test_selenium_autoload.php';
     require_once 'modelo/lib/testing_unitario/toba_test_lista_casos.php';
     require_once toba_dir() . '/php/3ros/simpletest/unit_tester.php';
     require_once toba_dir() . '/php/3ros/simpletest/reporter.php';
     $param = $this->get_parametros();
     $proyecto = isset($param['-p']) ? $param['-p'] : $this->get_id_proyecto_actual(true);
     $instancia = isset($param['-i']) ? $param['-i'] : $this->get_id_instancia_actual(true);
     toba_nucleo::instancia()->iniciar_contexto_desde_consola($instancia, $proyecto);
     $path = $this->get_instancia()->get_path_proyecto($proyecto);
     if (file_exists($path . $path_autoload_sel)) {
         require_once $path . $path_autoload_sel;
         spl_autoload_register(array('test_selenium_autoload', 'cargar'));
     }
     toba_test_lista_casos::$proyecto = $proyecto;
     toba_test_lista_casos::$instancia = $instancia;
     //Selecciono una categoria
     if (isset($param['-c'])) {
         $seleccionados = toba_test_lista_casos::get_casos($param['-c']);
     }
     //Seleccion de un test particular
     if (isset($param['-t'])) {
         $seleccionados = toba_test_lista_casos::get_casos();
         $particular = false;
         foreach ($seleccionados as $caso) {
             if ($caso['id'] == $param["-t"]) {
                 $particular = $caso;
             }
         }
         if ($particular) {
             $seleccionados = array($particular);
         } else {
             $seleccionados = array();
         }
     } elseif (!isset($param['-c'])) {
         //Ni categoria ni test, elijo de una lista presentada
         $seleccionados = toba_test_lista_casos::get_casos();
         $lista = array();
         $klaves = array_keys($seleccionados);
         foreach ($seleccionados as $caso) {
             $lista[$caso['id']] = $caso['nombre'];
         }
         $elegidos = $this->consola->dialogo_lista_opciones($lista, 'Seleccione el caso de test', true, null, false);
         foreach ($klaves as $klave) {
             if (!in_array($seleccionados[$klave]['id'], $elegidos)) {
                 unset($seleccionados[$klave]);
             }
         }
     }
     $resultado = null;
     try {
         $separar_casos = isset($param["-l"]) ? true : false;
         $separar_pruebas = isset($param["-l"]) ? true : false;
         $test = new toba_test_grupo_casos('Casos de TEST', $separar_casos, $separar_pruebas);
         foreach ($seleccionados as $caso) {
             require_once $caso['archivo'];
             $test->addTestCase(new $caso['id']($caso['nombre']));
         }
         //Termina la ejecución con 0 o 1 para que pueda comunicarse con al consola
         $resultado = $test->run(new TextReporter());
     } catch (Exception $e) {
         if (method_exists($e, 'mensaje_consola')) {
             $this->consola->mensaje($e->mensaje_consola());
         } else {
             $this->consola->mensaje($e);
         }
         $resultado = 1;
     }
     //Guardar LOGS?
     if (isset($param["-l"])) {
         toba::logger()->debug('Tiempo utilizado: ' . toba::cronometro()->tiempo_acumulado() . ' seg.');
         toba::logger()->guardar();
     }
     exit(intval($resultado));
 }
Esempio n. 3
0
 static function set_tipo($tipo_test)
 {
     self::$tipo = $tipo_test;
 }