Calmdevelopment

Keep calm and code. Or do some other stuff.


Mich hat mal interessiert, wie ich eigentlich die generierten TestReports von gradle nach einem Test automatisiert im Browser öffnen kann.

Hmm…​ob das immer Sinn macht sei mal dahin gestellt. Wenn ich den Test auf einem Jenkins-Server laufen lasse, will ich das sicherlich nicht.

Aber egal. Es funktioniert.

Task erstellen

gradle bringt ja eine umfassende DSL mit und diese erlaubt es uns Tasks eines bestimmten Typs zu definieren.

Um ein Programm auszuführen gibt es den Typ Exec.

task openTestReport(type: Exec) {
    def reportDir = test.reports.html.destination

    executable "firefox"
    args "-new-tab", "file://${reportDir}/index.html"
}

Task in Testprozess integrieren

Mit dem finalizer Task können wir sicherstellen das der Task in jedem Fall ausgeführt wird.

test.finalizedBy openTestReport

Diesen Schritt kann man dann natürlich weg lassen :)

Beispiel build.gradle für Java

Für ein simples Java Projekt sieht die build.gradle Datei dann folgendermaßen aus:

apply plugin: 'java'

sourceCompatibility = 1.7
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

task openTestReport(type: Exec) {
    executable "firefox"
    args "-new-tab", "file://${workingDir}/build/reports/tests/index.html"
}

test.finalizedBy openTestReport

2014 - 2017 | Mixed with Foundation v6.2.3 | Baked with JBake v2.5.1