2011-06-21 8 views
5

Tengo un trabajo en Jenkins que se ejecuta todas las noches. Las tareas ejecutadas durante esta compilación son: compilación, pruebas unitarias, pruebas de integración (que son solo pruebas de JUnit que son más largas que las "pruebas de unidad real" para ejecutar) y análisis de calidad de Sonar.¿Por qué mi trabajo en Sonar Jenkins nunca se vuelve inestable, incluso con fallas de prueba?

Cuando una prueba falla, el trabajo se considera exitoso y, por lo tanto, no se envía un correo electrónico para notificar esta falla.

El comando Maven utilizado es mvn clean install sonar:sonar. Eliminar el objetivo install no cambia nada.

¿Qué pasa con eso?

¿Hay alguna manera de obtener el comportamiento esperado (es decir, tener una versión inestable cuando falló una prueba) con solo un trabajo de Jenkins o crear dos trabajos, uno para toda la "parte de Java" (compilar, probar unidades y pruebas de integración), y uno para el análisis de Sonar?

Estamos utilizando Maven 2.0.9, Java 1.6, Sonar 2.8, Jenkins 1.413.

+0

¿Está definiendo -Dmaven.test.failure.ignore = true en cualquier lugar? – oers

+0

@oers No, en absoluto. El comando exacto de Maven es 'mvn -U -up -e clean install -Dsonar.branch = XXX --settings C: \ xxx \ jenkins-setting.xml' – romaintaz

+0

Jenkins parece establecer esa propiedad: http://stackoverflow.com/questions/1004912/hudson-build-successful-with-unit-test-failures – oers

Respuesta

0

Jenkins parece establecer que la propiedad: Hudson build successful with unit test failures

Con la propiedad (-Dmaven.test.failure.ignore = false), cuando hay un fallo de la prueba, la acumulación se detiene.

Hay una jenkins plugin de sónar: que parece para analizar incluso si las pruebas falla: http://jira.codehaus.org/browse/SONARPLUGINS-461

En mi instalación de sonar, que ejecutan las pruebas separadas de sonar y la reutilización de los informes junit/éxito seguro. De esa forma puedo controlar las pruebas independientemente de sonar.

+0

No estoy seguro de que solo pueda tener un trabajo en Jenkins para hacer todo. Establecer la propiedad '-Dmaven.test.failure.ignore' a' false' no me ayudará, ya que detendrá la compilación y la prueba en el primer módulo con error. Y como estoy trabajando con el proyecto de varios módulos, no funcionará en otros módulos ... – romaintaz

+1

Finalmente logré usar el complemento Sonar Jenkins (había un error con Maven 2.0.9 y este complemento, que ignora mi '- -settings' parámetro) y el estado ahora es manejado correctamente por Jenkins. – romaintaz

Cuestiones relacionadas