将 Gradle 中的参数传递给 Sauce 配置

passing params in Gradle to Sauce config

有没有办法将以下参数传递给 gradle 构建,以便在 build.gradle 启动 sauce connect 时可以为 sauce connect 生成日志。我的设置是 gradle-geb-saucelabs

bin/sc --logfile some_filename.log -vv

我的 build.gradle 在下面。下面的答案有助于理解如何在 gradle 中传递参数,但我仍在尝试找到如何通过 gradle.

将它们传递给 sauceConnect
import geb.gradle.saucelabs.SauceAccount

apply plugin: "geb-saucelabs"

buildscript {
    repositories {
        jcenter()
    }    

    dependencies {
       classpath 'org.gebish:geb-gradle:0.13.1'
    }
}

apply plugin: 'java'
apply plugin: 'groovy'

repositories {

    mavenCentral()
    maven { url "http://repository-saucelabs.forge.cloudbees.com/release" }
}

dependencies {
           def seleniumVersion = '2.45.0'
           def phantomJsVersion = '1.1.0'
           def groovyVersion = '2.4.3'

    //groovy
    compile "org.codehaus.groovy:groovy-all:$groovyVersion"

    // selenium drivers
     testCompile "org.seleniumhq.selenium:selenium-ie-driver:$seleniumVersion"
     testCompile "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"
     //testCompile "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
     testCompile "org.seleniumhq.selenium:selenium-support:$seleniumVersion"
     testRuntime "org.seleniumhq.selenium:selenium-support:$seleniumVersion"
     testCompile("com.github.detro.ghostdriver:phantomjsdriver:$phantomJsVersion") {
     transitive = false
    }

    // geb
    testCompile "org.gebish:geb-spock:0.10.0"

     // spock
    testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'

    //junit
    testCompile "org.gebish:geb-junit4:0.10.0"
    testCompile "junit:junit-dep:4.8.2"


    sauceConnect "com.saucelabs:sauce-connect:3.0.28"
    sauceConnect "com.saucelabs:ci-sauce:1.81"

        }




sauceLabs {
    browsers { 

       chrome_mac

    }
    task { 
       testClassesDir = test.testClassesDir
       testSrcDirs = test.testSrcDirs
       classpath = test.classpath
    }

    account { 
       //username = System.getenv(SauceAccount.USER_ENV_VAR)
       //accessKey = System.getenv(SauceAccount.ACCESS_KEY_ENV_VAR)

      username = System.getenv("SAUCE_USERNAME")
       accessKey = System.getenv("SAUCE_ACCESS_KEY")
    }


}

test {

            //System.setProperty('geb.saucelabs.browser','browserName=firefox:LINUX:19')
            systemProperties "geb.build.reportsDir": "$reportsDir/geb"


        }

我 运行 使用 gradle chromeMacTest --info

构建

我不知道把这个参数放在哪里,我会告诉你如何将参数传递给 gradle:

task startSC << {
    // your starting staff here
    System.out.println("Just test that params passed: " + passed)
}

运行 gradle:

$ gradle -Ppassed="bin/sc --logfile some_filename.log -vv" startSC

输出:

Just test that params passed: bin/sc --logfile some_filename.log -vv

BUILD SUCCESSFUL

将附加命令行选项传递给 Sauce Connect 的示例显示在代码段中标有参考号 11 的行中:http://www.gebish.org/manual/current/#geb-saucelabs-plugin