2012-04-11 5 views
4

Dies ist wahrscheinlich eher eine Gradle-Frage als eine Caliper-Frage, aber für Gradle bin ich noch ziemlich neu. Ich bin daran interessiert, eine Aufgabe in meinem Build bereitzustellen, die mit Caliper einige Benchmarks ausführen kann. Ich habe bereits Caliper zu meinen testCompile Abhängigkeiten hinzugefügt, und das funktioniert und zieht alles runter. Ich würde gerne wissen, wie man eine Aufgabe stellt, die die Benchmarks tatsächlich ausführt.Eine Aufgabe definieren, um Caliper Microbenchmark zu starten

Btw, ich weiß bereits über Caliper-Ci. Ich habe einen Jenkins-Build, aber es ist auf einem Cloud-Dienst, der es mir noch nicht erlaubt, die Verwendung von caliper-ci zu konfigurieren, und außerdem möchte ich in der Lage sein, lokal zu laufen, bevor ich Änderungen an der Cloud festlege.

Antwort

4

Es stellt sich heraus, dass es ein einfacher Fall war JavaExec der Verwendung von (ich war neu in dieser sowieso):

task runBenchmark(type: JavaExec, dependsOn: test) { 
    def vmVer = System.getProperty('java.version') 
    def osName = System.getProperty('os.name').replaceAll('\\s','') 
    def osArch = System.getProperty('os.arch') 
    def fnameBase = "ver${version}_${osName}-${osArch}_jvm${vmVer}" 
    def benchMarksDir = "${project.buildDir}/benchmarks" 
    ant.mkdir(dir: benchMarksDir) 
    def outStream = new FileOutputStream("${benchMarksDir}/${fnameBase}-out.txt") 
    standardOutput = outStream 
    main = 'org.funcito.benchmarks.MyBenchmark' 
    classpath = sourceSets.test.runtimeClasspath 
    args = ['--saveResults', "${benchMarksDir}/${fnameBase}.json", '-Jmode=-server,-client'] 
} 
Verwandte Themen