Gradle Jacoco код покрытия - затем опубликовать / показать в Jenkins

Я пытаюсь настроить покрытие кода для проекта приложения Java.

Название проекта: NewApp

Структура проекта:

src / java / ** (исходный код)src / java-test (юнит-тесты - Jnuit)test / it-test (интеграционный тест)тест / аттесты (приемочные испытания)tomcat / * (содержит сценарии запуска / остановки tomcat)Папки xx / .. etc, которые требуются для обычного приложения.

Версия Gradle: 1.6

Окружение: Linux

У меня есть работающий скрипт сборки gradle, который извлекает зависимости приложения (NewApp) (то есть сервисные jar-файлы, используемые приложением для процесса сборки) из хранилища артефактов сборки (artifactory / maven для ex) и создает приложение.

Теперь я хотел получить покрытие кода с помощью плагина JaCoCo для моего проекта приложения NewApp.

Я следовал документации по Gradle / Jacoco, но это не такКажется, я создаю папку отчетов / ... для jacoco и т. д., где я могу найти отчет о покрытии Jacoco.

Мои вопросы: 1. Для получения покрытия кода с использованием модульных тестов (Junit) я предполагаю, что все, что мне нужно сделать, это следующее, и мне НЕ потребуется запускать / останавливать tomcat перед запуском модульного теста (тестовая задача, т.е.Gradle Test ") чтобы получить покрытие кода для / через использование модульных тестов. Пожалуйста, посоветуйте / исправьте. Код (только для тестового модуля Gradle jacoco) - I 'м с помощью это:

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 " Задача, а затем остановить кота - получить отчет о покрытии кода. Из других постов в блоге я также обнаружил, что нужно установить переменную JAVA_OPTS для назначения агента jacoco перед запуском tomcat.

Например: установка переменной 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 (сценарий сборки), чтобы заставить работать вышеперечисленные интеграционные / модульные тесты, если они включают запуск / останов tomcat. Если кто-то может предоставить образец сценария для этого, япопробую.

я не получаю никакого покрытия кода прямо сейчас, когда я публикую покрытие кода Jacoco в Jenkins (используя действие постобработки Jenkins для публикации отчетов Jacoco). Панель инструментов сборки Jenkins показывает 0% для покрытия кода (то есть столбцы, отображающие весь красный цвет, но не зеленый для фактического покрытия кода).

Нужен ваш совет, чтобы получить некоторую тягу на этом.