2012-01-20 21 views
8

mi configuración es:¿Cómo hago que Jenkins, Sonar y el complemento JaCoCo trabajen juntos para Eclipse Tycho Plugin Projects (o tal vez Cobertura)?

  • Jenkins 1.448
  • Sonar 2.13
  • Jenkins Sonar Plugin 1.72
  • una base de datos MySQL para sonar

tengo el siguiente proyecto:

  • Eclipse Plugin Project
  • usando Maven
  • múltiples módulos (proyecto Maven padre, proyecto de plugin fuente, proyecto fragmento de prueba)
  • una simple prueba de JUnit probar una clase del proyecto de plugin fuente

lo que el proceso está en el momento:

  • Jenkins comprueba a cabo el proyecto principal desde SVN
  • Jenkins construye el proyecto y sus módulos usando Maven y Tycho
  • Jenkins utiliza de éxito seguro para ejecutar las pruebas y elaborar un informe
  • Jenkins utiliza el plugin Jenkins Sonar para comenzar a sonar mvn: sonar para ejecutar análisis de código
  • análisis de código estático se realiza en cada módulo falla
  • JaCoCo

Sonar tiene estadísticas estáticas de análisis de código disponibles y se muestra el porcentaje de éxito de prueba. Lo único que falta es la cobertura del código de JaCoCo ... o tal vez incluso la cobertura del código de Cobertura.

Realmente no me importa en este punto, solo quiero que una de estas cosas produzca resultados de cobertura de código.

Cobertura parece ser incapaz de producir resultados, posiblemente porque o - que no puede instrumentar el código - busca el código instrumentado en el lugar equivocado - no puede hacer frente a Tycho o la fuente separada/código de prueba de configuración

JaCoCo debe ser capaz de "ver" la cobertura de código sobre la marcha, pero su producción es

[INFO] [17:44:04.708] Sensor JaCoCoSensor... 
[INFO] [17:44:04.717] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testSource/target/jacoco.exec 
[INFO] [17:44:04.854] Sensor JaCoCoSensor done: 146 ms 

[INFO] [17:44:10.587] Sensor JaCoCoSensor... 
[INFO] [17:44:10.587] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testTest/target/jacoco.exec 
[INFO] [17:44:10.631] Sensor JaCoCoSensor done: 44 ms 

[INFO] [17:44:12.402] Sensor JaCoCoSensor... 
[INFO] [17:44:12.402] Project coverage is set to 0% as build output directory doesn't exists: /var/lib/jenkins/jobs/testPlugin/workspace/testParent/target/classes 
[INFO] [17:44:12.402] Sensor JaCoCoSensor done: 0 ms 

¿Qué estoy haciendo mal? ¿Debo habilitar JaCoCo en mi pom.xml en alguna parte? ¿Necesito seguro? ¿Qué debo hacer para usar Cobertura?

Respuesta

0

Cuando el código está listo para ser instrumentado, surefire debe ejecutarse en ese código específico que genera la instrumentación. No he usado su configuración, pero su error parece muy similar al que obtuve cuando conseguí que la cobertura del código Clover funcionara; Tuve que señalar surefire para ejecutar pruebas fuera del directorio en el que se almacenaba el código instrumentado compilado.

Además, encontré que la opción -X en la línea de comandos de Maven es invaluable, ya que al leer los registros de cada complemento durante una compilación, se muestra exactamente dónde está buscando lo que está tratando de encontrar.

Editar:

código instrumentado tendrán que ser compilado antes de éxito seguro puede funcionar en contra de ella, así que es conveniente para que apunte al directorio de post-compilación y no la fuente instrumentado en sí.

+0

¿Cómo le digo Sonar o Cobertura o JaCoCo dónde buscar el código instrumentado? – danowar

3

He encontrado una página con un ejemplo de proyecto de varios módulos tycho (proyectos de prueba y fuente independientes). Después de copiar algunas de las propiedades y configuraciones ...

parece que ahora uso un plugin de maven jacoco para generar el informe de cobertura del código jacoco y luego le digo a Sonar dónde encontrar el informe y volver a utilizarlo.

¿Por qué en la tierra no hay documentación para esto? ¿O por qué es tan difícil de encontrar?

https://github.com/Godin/sonar-experiments/tree/master/jacoco-examples/tycho-example

Cuestiones relacionadas