Gradle jacoco code coverage - Then post / show in jenkins

I am trying to set up code coverage for a Java application project.

Project Name: NewApp

Project Structure:

  • src / java / ** (source)
  • src / java-test (unit tests - Jnuit)
  • test / it-test (integration test)
  • test / certification (acceptance tests)
  • tomcat / * (contain tomcat start / stop scripts)
  • xx / .. etc, which are necessary for a regular application.

Gradle version: 1.6

Environment: Linux

I have a working gradle build script that extracts application dependencies (NewApp) (e.g. service banks used by the application for the build process) from the build artifact repository (artifactory / maven for ex) and creates the application.

Now at this point I wanted to get code coverage using the JaCoCo plugin for my NewApp application project.

Gradle/Jacoco, , , /... jacoco .., Jacoco.

: 1. (Junit), , , , , / tomcat unit test ( , .. "gradle test" ), / . , /. ( gradle jacoco unit test) - :

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)
}

:

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

jacocoTestReport , , , , jacocoTestReport , .

  • , tomcat (.. / ), "gradle integrationTest" "gradle test", tomcat - . , JAVA_OPTS jacoco tomcat.

ex: JAVA_OPTS, :

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"
  • Gradle/groovy - , build.gradle(build script), /, /stop of tomcat. - script, , .

  • , Jacoco Jenkins ( Jenkins post build action Jacoco). Jenkins 0% (.. , , ).

, - .

+1
2

.

Gradle 1.7  - .zip, /src .  - : .zip C:\gradle -1.7  C:\ gradle -1.7\\\jacoco\QuickStart

  • Run: gradle build jacocoTestReport

  • "build". - jacoco classdumps .exec, . - jacoco jacocoHtml - jacocoTestReport

.

, :

build.gradle

/////
 tasks.withType(Compile) {
 options.debug = true
 options.compilerArgs = ["-g"]
 }
 ////
0
  • : , tomcat. , tomcat .

    ,

    gradle jacocoTestReport
    

    jacocoTestReport gradle jacoco .

    , . , source/java. additionalSourceDirs.

  • : , tomcat, , , , tomcat . gradle 1.7. finalizedBy

    -

    task integrationtests(type: Test) {
      dependsOn startTomcat
      finalizedBy stopTomcat
    }
    

    start/stopTomcat - . gradle 1.6, dependsOn:

    stopTomcat -dependsOn-> integrationtests -dependsOn-> startTomcat
    

    , , .

  • / Tomcat: ,

    task startTomcat() << {
      def tomcatStartScript = "${project.rootDir}/tomcat/startScript"
      tomcatStartScript.execute()
    }
    

    script . ( Groovy doc: Executing)

  • : jacocoTestReport

0

Source: https://habr.com/ru/post/1533312/


All Articles