2017-01-04 12 views
0

Ich habe eine Web-Anwendung läuft auf Wildfly 9 mit Gradle, um es zu bauen, und ich möchte Code Coverage von manuellen Tests erhalten, so begann ich mit jacoco dafür. Was ich bisher habe, ist dies in meiner build.gradle Datei das ist Java im Debug-Modus für den Start:Wie generiere ich jacoco in manuellen Tests?

tasks.withType(JavaCompile) { 
    options.encoding = "UTF-8" 
    options.debug = true 
    options.compilerArgs = ["-g"] 
} 

Und dies für die Definition jacoco berichtet

jacocoTestReport { 
    reports { 
     xml.enabled true 
     csv.enabled false 
     html.destination "${buildDir}/jacocoHtml" 
    } 
} 

Es ist jedoch nicht jacoco Ordner nicht zu erzeugen, I Ich denke, ich vermisse irgendeinen Punkt oder etwas.

Antwort

1

Verwendung von JaCoCo beinhaltet folgende Schritte:

  • Ausführung von instrumentierten Code (egal wie manuelle oder automatisierte Tests)
  • Generation Bericht

Informationen, die Sie in der Frage geben - ist über Erstellung von Java-Dateien und Generierung von Berichten, aber nichts über die Ausführung von JVM.

Es gibt viele Möglichkeiten Code mit on-the-fly Instrumentierung auszuführen, je nachdem wie JVM gestartet (Gradle/Maven/Ant-Plugins, etc.), aber sie alle laufen auf Nutzung von JaCoCo Java Agent während JVM Start:

java -javaagent:jacocoagent.jar ... 
0

Standardmäßig ist die Task jacocoTestReport für einen normalen Build nicht in die DAG verdrahtet. Um es zu laufen können Sie die folgenden von der Kommandozeile

./gradlew test jacocoTestReport 

rufen Wenn Sie es wollen, jedes Mal laufen die Tests ausgeführt (was ich nicht empfehlen), dann können Sie es auf die DAG in Ihrem build.gradle

verdrahten
test.finalizedBy 'jacocoTestReport' // not perfect since it will run when test fails 

Oder vielleicht

check.dependsOn 'jacocoTestReport' // 'build' task calls 'check' which calls 'test' 
Verwandte Themen