2012-04-11 25 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'] 
}