6

我有以下任务

task testGeb(type:Test) {
   jvmArgs '-Dgeb.driver=firefox'
   include "geb/**/*.class"
   testReportDir = new File(testReportDir, "gebtests")
}

系统属性似乎没有进入 Geb 测试,因为 Geb 不会生成 Firefox 来运行测试。当我在 Eclipse 中设置相同的系统属性并运行测试时,一切正常。

4

5 回答 5

17

尝试使用系统属性:

test {
   systemProperties['geb.driver'] = 'firefox'
   include "geb/**/*.class"
   testReportDir = new File(testReportDir, "gebtests")
}
于 2011-04-13T11:57:18.420 回答
7

也可以直接在任务中设置系统属性:

task testGeb(type:Test) {
    System.setProperty('geb.driver', 'firefox')}

(上面的解决方案也适用于不同于的任务类型Test

或者,如果您希望能够从命令行传递不同的属性,您可以在任务定义中包含更灵活的解决方案:

task testGeb(type:Test) {
    jvmArgs project.gradle.startParameter.systemPropertiesArgs.entrySet().collect{"-D${it.key}=${it.value}"}
}

然后你可以运行: ./gradlew testGeb -D[anyArg]=[anyValue],在你的情况下:./gradlew testGeb -Dgeb.driver=firefox

于 2015-11-17T14:52:26.490 回答
1
Below code works fine for me using Gradle and my cucumber scenarios are passing perfectly. Add below code in your build.gradle file:

//noinspection GroovyAssignabilityCheck

test{

    systemProperties['webdriver.chrome.driver'] = '/usr/bin/google_chrome/chromedriver'

}

注意:我使用了 Ubuntu OS 和我在 /usr/bin/google_chrome/ 中指定的 chrome_driver 路径,您的路径会根据您的路径而有所不同。

于 2016-06-15T09:26:18.733 回答
1

添加systemProperties System.getProperties()你的任务

test {
  ignoreFailures = false
  include "geb/**/*.class"
  testReportDir = new File(testReportDir, "gebtests")
  // set a system property for the test JVM(s)
  systemProperties System.getProperties()
}

这样它就可以在运行测试时进行配置。例如

gradle -Dgeb.driver=firefox test
gradle -Dgeb.driver=chrome test 
于 2017-03-16T11:58:37.850 回答
0

我建议执行以下操作

gradle myTask -DmyParameter=123

使用以下代码

task myTask {
    doLast {
        println System.properties['myParameter']
    }
 }

输出应该是

gradle myTask -DmyParameter=123 :myTask 123

构建成功

总时间:2.115 秒

于 2012-07-31T09:18:06.863 回答