2012-07-17 15 views
6

Se supone que debo ejecutar algunas pruebas jbehave (automatizadas) en bambú. Una vez que se ejecuten las pruebas, generaré algunos archivos xml compatibles con Junit para que el bambú pueda entender lo mismo. Todas las pruebas jbehave se ejecutan como parte de un script, porque necesito ejecutar las pruebas jbehave en una pantalla de visualización separada (recuerde que estas son pruebas automáticas del navegador). El script de ejemplo es el siguiente.Todas las pruebas pasaron, pero la compilación de bambú falla con una declaración "No se encontraron pruebas fallidas, se produjo un posible error de compilación".

Ex:

export DISPLAY=:0 && xvfb-run --server-args="-screen 0, 1024x768x24" 
mvn clean integration-test -DskipTests -P integration-test -Dtest=* 

tengo una tarea más analizador junit que apunta a los archivos XML compatibles JUnit generado. Entonces, una vez que se ejecuta la compilación de bambú e incluso si todas las pruebas pasan, obtengo una compilación roja con el mensaje "No se encontraron pruebas fallidas, se produjo un posible error de compilación".

¿Puede alguien ayudarme en este sentido.

Respuesta

14

Su script de compilación podría estar produciendo informes de prueba exitosos, pero uno (o ambos, posiblemente) de sus tareas está fallando. Eso significa que es probable que la falla * ocurra después de que se completen las pruebas. Verifique los registros de compilación para ver si hay errores. También puede intentar iniciar sesión en su servidor de Bamboo (como usuario de bambú) y ejecutar los comandos a mano.

He visto este mensaje en el pasado cuando nuestra tarea de prueba se colgaba a la mitad de la ejecución de prueba, lo que dio como resultado un informe incorrecto que Bamboo ignoró y un montón de informes exitosos.

* Compruebe el registro de compilación para asegurarse de que sus pruebas se estén ejecutando. Si mvn clean no elimina el directorio del informe de prueba, es posible que Bamboo esté analizando informes obsoletos.


EDIT: (en respuesta a los enlaces de Kishore)

Parece que a la tarea de matar Xvfb es lo que está causando la acumulación falle.

18-Jul-2012 09:50:18 Starting task 'Kill Xvfb' of type 'com.atlassian.bamboo.plugins.scripttask:task.builder.script' 

18-Jul-2012 09:50:18  
Beginning to execute external process for build 'Functional Tests - Application Release Test - Default Job' 
... running command line: 
/bin/sh 
    /tmp/FUNC-APPTEST-JOB1-91-ScriptBuildTask-4153769009554485085.sh 
... in: /opt/bamboo-home/xml-data/build-dir/FUNC-APPTEST-JOB1 
... using extra environment variables: 

<..snip (no meaningful output)..> 

18-Jul-2012 09:50:18 Failing task since return code was 1 while expected 0 

18-Jul-2012 09:50:18 Finished task 'Kill Xvfb' 

¿Qué hace su script "Kill Xvfb"? ¿Estás intentando algo como pkill -f "[x] vfb"? pkill -f devuelve silenciosamente un valor distinto de cero si no puede hacer coincidir la expresión con ningún proceso.

+0

Choover, gracias por la respuesta. No veo ningún posible error en ninguna de mis tareas de bambú.Definitivamente hay algunos rastros de pila que son causados ​​por mi aplicación. Por favor, eche un vistazo al buil https://ci.openmrs.org/browse/FUNC-APPTEST/latest y log https://ci.openmrs.org/download/FUNC-APPTEST-JOB1/build_logs/FUNC-APPTEST- JOB1-89.log para más detalles. –

+0

lo siento, no había espacio suficiente en el cuadro de comentarios para publicar el resultado del registro, así que terminé editando mi publicación - ver arriba^ – choover

2

Resulta ser una solución simple.

El comportamiento general de bambú es escanear todo el registro y ver si hay algún código de falla (1). Para esta configuración específica, tenía 6 scripts de los cuales uno de ellos era matar el xvfb (frame buffer). Por algún motivo, el servidor no puede eliminar xvfb y esa tarea devolvió un código de falla. Debido a esto, aunque pasaron todas las pruebas, bambú obtuvo uno de estos códigos de error de las tareas anteriores y la compilación fallaba.

¡La solución actual es eliminar la tarea que mata a xvfb y la construcción se volvió verde! \ o /.

+0

Guau, eso es exactamente lo que puse en mi respuesta a su comentario. * suspiro * – choover

+0

¡Genial! muchas gracias por tomarse un tiempo y buscar salida de registro :) –

+0

eso fue exactamente lo que @choover puso en su respuesta a su comentario. tsc tsc tsc Deberá firmar esa respuesta como respuesta correcta. – Miere

4

Mi solución era hacer una tarea 'guión':

#!/bin/bash 
/usr/local/bin/phpcs --report=checkstyle --report-file=build/logs/checkstyle.xml --standard=PSR2 ./lib | exit 0 

que siempre termina con un estado 0.

Esto es debido a que PHP código sniffer de estado de salida de retorno 1, cuando sólo 1 violación de codificación (advertencia/error) se encuentra que hace que el built para fallar.

+0

La misma solución funcionó para mí también en nuestro servidor de compilación de Windows. Debe usar un tubo para la salida en lugar de una nueva línea, de lo contrario, la salida 0 no se llamará - siempre - después de ejecutar el karma. –

Cuestiones relacionadas