Cobertura de código jacob - em seguida publicar / mostrar em Jenkins

Estou tentando configurar a cobertura de código para um projeto de aplicativo Java.

Nome do projeto: NewApp

Estrutura do projeto:

src / java / ** (código-fonte)src / java-test (testes de unidade - Jnuit)teste / teste (teste de integração)teste / testes (testes de aceitação)tomcat / * (contém scripts de início / parada do tomcat)Pastas xx /..et que são necessárias para uma aplicação normal.

Versão Gradle: 1.6

Ambiente: Linux

Eu tenho um script de construção gradle em execução que busca dependências de aplicativo (NewApp) (ou seja, jars de serviço usados ​​pelo aplicativo para o processo de construção) de um repositório de artefatos de construção (artifactory / maven para ex) e cria o aplicativo.

Agora, neste momento, eu queria obter cobertura de código usando o plugin JaCoCo para o meu projeto de aplicativo NewApp.

Eu segui a documentação por Gradle / Jacoco mas não parece criar nenhum relatório / ... pasta para jacoco etc onde eu posso achar o que relatório de cobertura de Jacoco fez.

Minhas perguntas: 1. Para obter a cobertura de código usando testes de unidade (Junit), presumo que tudo o que tenho que fazer é o seguinte e NÃO exigirá que eu inicie / pare o tomcat antes de executar o teste de unidade (teste tarefa ie "gradle test" ) para obter cobertura de código para / via usando testes de unidade. Por favor, informe / corrija. O código (apenas para parte de teste de unidade de Jacobs Gradle) - Eu estou 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)
}

e para testes de integração:

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

Como o jacocoTestReport depende da (s) tarefa (s) de teste, eles serão chamados primeiro e, finalmente, o jacocoTestReport relatará o que encontrou para a cobertura do código.

Para obter a cobertura de código para testes de integração, suponho que devo iniciar o tomcat primeiro (ou seja, antes de executar / chamar teste alvo para testes de integração), depois chamar "gradle integrationTest" ou "gradle test" e parar tomcat - para obter o código relatório de cobertura. De outras postagens do blog, também descobri que é necessário configurar a variável JAVA_OPTS para atribuir o agente jacoco antes do tomcat ser iniciado.

por ex: configurando a variável 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"

Sendo novo no Gradle / groovy - não tenho certeza de qual código devo escrever dentro do build.gradle (script de compilação) para fazer com que os testes de integração / unidade acima funcionem se envolver start / stop do tomcat. Se alguém puder fornecer um exemplo de script para fazer isso, tentarei.

Eu não estou recebendo nenhuma cobertura de código agora, quando eu publico a cobertura de código Jacoco em Jenkins (usando Jenkins post build action para publicar relatórios Jacoco). O painel de criação do Jenkins mostra 0% de cobertura de código (ou seja, barras mostrando toda a cor vermelha, sem verde para a cobertura real do código).

Preciso de seu conselho para obter alguma tração sobre isso.

questionAnswers(2)

yourAnswerToTheQuestion