Cobertura de código de Jacobo de Gradle - Luego publique / muestre en Jenkins

Estoy tratando de configurar la cobertura de código para un proyecto de aplicación Java.

Nombre del proyecto: NewApp

Estructura del proyecto:

src / java / ** (código fuente)src / java-test (pruebas unitarias - Jnuit)prueba / it-test (prueba de integración)Test / at-tests (pruebas de aceptación)Tomcat / * (contiene los scripts de inicio / parada de Tomcat)Carpetas xx / .. etc que son necesarias para una aplicación habitual.

Versión de Gradle: 1.6

Ambiente: Linux

Tengo un script de compilación de gradle en ejecución que recupera las dependencias de la aplicación (NewApp) (es decir, los archivos jar utilizados por la aplicación para el proceso de compilación) desde un repositorio de artefactos de compilación (artifactory / maven for ex), y compila la aplicación.

Ahora, en este punto, quería obtener una cobertura de código utilizando el complemento JaCoCo para mi proyecto de aplicación NewApp.

Seguí la documentación de Gradle / Jacoco pero no parece crear ninguna carpeta de informes / ... para jacoco, etc., donde puedo encontrar lo que hizo el informe de cobertura de Jacoco.

Mis preguntas: 1. Para obtener la cobertura del código utilizando las pruebas Unitarias (Junit), asumo que todo lo que tengo que hacer es lo siguiente y NO me requerirá que inicie / detenga el tomcat antes de ejecutar la prueba unitaria (tarea de prueba, es decir, "prueba Gradle" ) para obtener la cobertura del código para / mediante el uso de pruebas unitarias. Por favor avisar / corregir. El código (solo para la parte de prueba de la unidad Gradle jacoco) - Estoy usando:

apply plugin: 'jacoco'

test {
      include 'src/java-test/**'
}

jacocoTestReport {
    group = "reporting"
    description = "Generate Jacoco coverage reports after running tests."
    reports {
        xml.enabled true
        html.enabled true
        csv.enabled false
    }
    //classDirectories = fileTree(dir: 'build/classes/main', include: 'com/thc/**')
    //sourceDirectories = fileTree(dir: 'scr/java', include: 'com/thc/**')
    additionalSourceDirs = files(sourceSets.main.allJava.srcDirs)
}

y para pruebas de integración:

task integrationTest(type: Test) {
        include 'test/java/**'
}

Como jacocoTestReport depende de la (s) tarea (s) de prueba, se llamarán primero y, finalmente, jacocoTestReport informará lo que encontró para la cobertura del código.

Para obtener la cobertura del código para las pruebas de integración, asumo que debo iniciar Tomcat primero (es decir, antes de ejecutar / llamar al objetivo de prueba para las pruebas de integración), luego llamar a la tarea "test de integración de gradle" o "prueba de gradle" y luego detener el tomcat - para obtener el código informe de cobertura. De otras publicaciones del blog también encontré que uno debería configurar la variable JAVA_OPTS para asignar el agente jacoco antes de que comience Tomcat.

por ej .: configurando la variable JAVA_OPTS como:

export JACOCO="-Xms256m -Xmx512m -XX:MaxPermSize=1024m -javaagent:/production/jenkinsAKS/jobs/NewApp/workspace/jacoco-0.6.3.201306030806/lib/jacocoagent.jar=destfile=/production/jenkinsAKS/jobs/NewApp/workspace/jacoco/jacoco.exec,append=true,includes=*"
export JAVA_OPTS="$JAVA_OPTS $JACOCO"

Siendo nuevo en Gradle / groovy: no estoy seguro de qué código debo escribir en build.gradle (script de compilación) para que funcionen las pruebas de Integración / Unidad anteriores si se trata de iniciar / detener Tomcat. Si alguien puede proporcionar un script de ejemplo para hacerlo, lo intentaré.

No estoy recibiendo ninguna cobertura de código en este momento, cuando publico la cobertura de código Jacoco en Jenkins (utilizando la acción de compilación posterior de Jenkins para publicar informes de Jacoco). El tablero de mandos de Jenkins muestra 0% para la cobertura del código (es decir, barras que muestran todo el color rojo, no verde para la cobertura del código real).

Necesito su consejo para obtener algo de tracción en esto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta