2011-02-03 15 views
8

Cualquier persona que use el uso CodeIgniter automatizado las pruebas unitarias?automatizada de la unidad con CodeIgniter

parece ser la forma tipo de CodeIgniter hacer prueba de la unidad necesita tener un controlador que se ejecuta en el navegador,

por ejemplo,

  1. http://codeigniter.com/user_guide/libraries/unit_testing.html
  2. o esto: http://jensroland.com/projects/toast/

Sin embargo, sólo quiero poner a prueba desde la línea de comandos, quiero pruebas automatizadas y construir.

¿Alguna recomendación?

Gracias.

+0

Aquí es un buen recurso con PHPUnit. ** Unidad de prueba de una aplicación real CodeIgniter ** [http://vimeo.com/28588831](http://vimeo.com/28588831) –

Respuesta

4

Puede utilizar esta integración con PHPUnit - http://www.foostack.com/foostack/

Sería entonces ejecutar desde la línea de comandos.

+3

FYI, foostack no parece ser compatible con CI 2.0 y superior. No –

+2

mismo probado, pero este proyecto (https://bitbucket.org/kenjis/my-ciunit) es un tenedor de CIUnit Foostack para 2.x. CI – gacrux

3

Aquí es lo que hago:

  • Descargar Test.php
  • Crear un directorio 't' en la raíz de mi aplicación CI
  • Ponga Test.php en el directorio t
  • Crear un arranque .php (véase más adelante) para inicializar las pruebas
  • require_once el archivo Bootstrap.php en mis pruebas.
  • Run prove en pruebas en el directorio t

bootstrap.php:

<?php 

// Initialize CodeIgniter, suppressing output. 
ob_start(); 
require_once __DIR__ . '/../index.php'; 
ob_end_clean(); 

require_once __DIR__ . '/Test.php'; 

Un ejemplo de una prueba:

t/000-sanity.t:

#!/usr/bin/env php 
<?php 

require_once 'bootstrap.php'; 

plan(1); 

is(true, true, 'Test.php works'); 

Todo CodeIgniter material está disponible . Por ejemplo, se puede hacer $ci =& get_instance();

Esta configuración funciona muy bien en 1.7.x CI 2.x. Test.php es realmente fácil de usar, también.

+0

Esto no funciona (nunca más). El resultado nunca se suprime y CodeIgniter sale del proceso de PHP, por lo que desafortunadamente las pruebas nunca se ejecutan. Probado con CodeIgniter 2.2.0 –