2012-04-11 2 views
4

Это, скорее всего, вопрос о Грейдле, чем вопрос о суппорте, но я до сих пор довольно новичок в Gradle. Я заинтересован в предоставлении задачи в моей сборке, которая может запускать некоторые тесты с помощью Caliper. Я уже добавил Caliper к моим зависимостям testCompile, и это работает и все тянет. Я хотел бы знать, как обеспечить задачу, которая будет фактически запускать тесты.Определение задачи градиента для запуска микроцилиндра суппорта

Btw, я уже знаю про суппорт-ци. У меня есть сборка Jenkins, но она находится в облачном сервисе, который еще не позволяет мне настроить использование суппорта-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'] 
}