2012-04-11 22 views
4

這可能更多的是一個Gradle問題而不是Caliper問題,但我對Gradle還是比較新的。我有興趣提供一個可以使用Caliper運行一些基準測試的任務。我已經將Caliper添加到了我的testCompile依賴項中,並且可以正常工作並將所有內容全部取消。我想知道如何提供一個實際運行基準測試的任務。定義一個gradle任務來運行caliper microbenchmark

順便說一句,我已經知道卡鉗。我確實有一個Jenkins版本,但它的雲服務尚未允許我配置caliper-ci的使用,此外,我希望能夠在對雲進行更改之前在本地運行。

回答

4

原來這是用JavaExec的簡單情況(我是新來的是反正):

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'] 
}