2008-12-01 15 views
8

Estoy buscando una solución completa para un "edificio" automatizado y pruebas de la aplicación PHP. Me encontré con PhpUnderControl, una solución para ejecutar compilaciones de aplicaciones automatizadas creadas alrededor de Cruise Control.Cruise Control y proyectos PHP

Desafortunadamente PhpUC todavía está en sus primeras etapas de desarrollo y no puedo hacer que funcione en Windows Box.

Después de algunas horas de intentar, renuncié a phpUc. Ahora estoy tratando de usar Cruise Control solo. Funciona muy bien cuando se trata de ejecutar un proceso de construcción completo. Cada comando que pongo en el archivo de compilación de la hormiga funciona bien.

El único problema que tengo es que Cruise Control no fusionará los registros de las compilaciones de ejecución en el archivo de registro del proyecto, por lo tanto, no puedo ver ningún resultado de compilación. Pero el proyecto de ejemplo en Control de crucero funciona bien, los registros de construcciones se fusionan en el registro del proyecto.

Me pregunto si Cruise Control es capaz de fusionar los registros creados por PHPUnit (en formato XML) en el registro del proyecto o solo para los archivos JUnit de Java. ¿Alguien ha tratado de usar Cruise Control solo en un proyecto de php?

aquí está la sección de registro de la configuración del proyecto (config.xml):

<log dir="logs/${project.name}"> 
<merge dir="projects/${project.name}/build/logs/"/> 
</log> 

Se trata de rutas de la copia +-pegado cambiaron de proyecto de ejemplo de control de crucero.

Cualquier pensamiento a nadie por favor.

Gracias

Respuesta

2

Me pregunto si Cruise Control es capaz de fusionar registros creados por PHPUnit (en formato XML) en registro de proyecto o es que funcione para los archivos de Java JUnit solamente.

CC fusionará cualquier archivo xml que lo señale. Cuando dice que la fusión de los archivos no funciona, ¿recibe un error al fusionarlos o los resultados de las pruebas no aparecen en la página de resultados? Si miras el archivo de registro de compilación, ¿ves los resultados de la prueba combinados?

Un problema que puede estar viendo es que los archivos .xsl en la aplicación de informes jsp esperan que los resultados de la prueba estén en la estructura creada por la tarea junit ant. Lo que podría estar sucediendo es que se está fusionando en los archivos, pero .xsl no sabe cómo mostrar los resultados.

Pero creo que hay una solución simple. El proyecto PhpUnderControl proporciona un phpunit.jsp. Creo que si agrega esto a su instalación de CC existente, podrá ver los resultados de la prueba. Puede agregar phpunit.jsp a las pestañas con bastante facilidad; solo mira main.jsp y debería ser obvio.

Si tiene alguna pregunta de seguimiento, le recomiendo el CruiseControl users mailing list.

(no he usado CC en un proyecto PHP, pero yo soy uno de los committers CC.)

+0

Gracias por tomarse el tiempo para responder a mi pregunta, Lo que quiero decir con 'fusionar no funciona' es que no se crean archivos de registro en el directorio cc/logs/project después de la primera compilación. Empecé de nuevo y creé un nuevo archivo config.xml y lo hice funcionar. Supongo que estropeé el archivo de configuración de alguna manera. – CountZero

0

he encontrado que climatizador solamente fusionar los registros que contienen resultados de la prueba cuando una prueba falla.

Cuando realicé una prueba a propósito, los resultados se fusionaron en el registro y se muestran en el tablero CruiseControl.

¿Podría ser ese su problema?

0

Intentamos usar PHPUc con CC y no pudimos hacer que las cosas funcionasen bien. Experimentamos con CC directo, pero nos resultó difícil obtener autenticación allí (estamos distribuidos, por lo que nuestros informes estarían abiertos al mundo a menos que lo hayamos identificado, no pudimos resolverlo)

Por lo tanto , ahora estamos usando Hudson como nuestro motor CI y Phing como nuestra herramienta de construcción. Funciona bien. Tenemos informes de cobertura de código que vienen directamente de PHPUnit (que Hudson todavía llama "cobertura de Clover" del mundo de Java, pero hey es solo el nombre de un enlace y sabemos lo que significa).

Hudson fue fácil de configurar y parece funcionar con todo lo que necesita para PHP.

+0

Desde que publiqué esto, conseguimos que PHPuc trabajara con Cruise Control y todo es muy sencillo. No soy el tipo que lo hizo, pero aparentemente se puede hacer. Tenemos informes de cobertura de código con PHPUnit, PMD, CodeSniffer y tablas de métricas que funcionan. Entonces hay esperanza. –

1

phpunit, phpUnderControl y CC funcionan muy bien!

Para la obtención de las pruebas en la pestaña (phpUnderControl con CC) en el archivo XML PHPUnit asegurarse de que el archivo de registro PHPUnit generada está en el camino correcto

<log type="junit" target="...../cruisecontrol-bin-2.8.4/projects/<projname>/build/logs/logfile.xml" logIncompleteSkipped="false"/> 

Una vez que el logfile.xml se genera a partir de pruebas PHPUnit se muestran en la pestaña de pruebas de phpUnderControl y CC.

Cuestiones relacionadas