2012-07-06 17 views
9

Estoy en el medio de mi primer intento de configurar a Jenkins para construir y ejecutar pruebas unitarias/cobertura de código con mi proyecto CakePHP. Hasta ahora logré que Jenkins obtuviera y construyera automáticamente desde mi repositorio BitBucket, una pequeña victoria en sí misma.CakePHP/Jenkins/Phing - Ejecuta todas las pruebas de unidades

Lo siguiente que quiero que suceda es que las pruebas de la unidad se ejecuten y que se completen los informes de cobertura.

Aquí es mi build.xml, que está siendo ejecutado en Jenkins con el (único) construir comando phing -f $WORKSPACE/build.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Consumer Love" default="phpunit"> 
    <target name="phpunit"> 
     <exec command="cake test app --coverage-clover logs/reports/clover.xml"></exec> 
    </target> 
</project> 

Creo que el problema es que cuando se ejecuta cake test app se pide un puntual de las cuales específica pruebas que desea ejecutar, no he podido encontrar un método para ejecutar todos de mis pruebas de unidad de aplicación CakePHP.

+0

Parece que habrá soporte integrado para esto (¿otra vez?) En CakePHP 2.5: https://github.com/cakephp/cakephp/pull/2655 – geoffspear

Respuesta

12

La solución fue crear un conjunto personalizado CakePHP Test que agrega archivos/directorios específicos para ser probado, luego ejecute ese conjunto con el comando cake test app AllTests.

Por ejemplo, aquí es mi Test/Case/AllTests.php:

/* 
* Custom test suite to execute all tests 
*/ 

class AllTestsTest extends PHPUnit_Framework_TestSuite { 

    public static function suite() { 

     $path = APP . 'Test' . DS . 'Case' . DS; 

     $suite = new CakeTestSuite('All tests'); 
     $suite->addTestDirectory($path . 'Model' . DS); 
     return $suite; 

    } 

} 

Este banco de pruebas, simplemente añade el directorio Models al entorno de pruebas, por lo que todas mis pruebas con modelos ahora se ejecutan. Como puede ver, puede extenderse para ejecutar más/todas las pruebas según lo considere oportuno.

+0

Si obtiene aquí a través de Google, agrega * todas las pruebas (no solo las de Model dir) como esta: '$ suite-> addTestDirectoryRecursive (TESTS. 'Case');' – gazareth

+0

creo que se necesita más descripción, no entiendo la solución aquí, me estoy perdiendo algo –

0

Probar cake test app all. No puedo confirmar que esto marque la diferencia en este momento, pero saqué esto de un archivo de compilación de phing donde estoy haciendo lo mismo que tú, así que debería ser bueno.

+0

Esto funcionó en versiones anteriores de Cake – Dunhamzzz

Cuestiones relacionadas