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