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% (.. , , ).
, - .