我有以下任务
task testGeb(type:Test) {
jvmArgs '-Dgeb.driver=firefox'
include "geb/**/*.class"
testReportDir = new File(testReportDir, "gebtests")
}
系统属性似乎没有进入 Geb 测试,因为 Geb 不会生成 Firefox 来运行测试。当我在 Eclipse 中设置相同的系统属性并运行测试时,一切正常。
尝试使用系统属性:
test {
systemProperties['geb.driver'] = 'firefox'
include "geb/**/*.class"
testReportDir = new File(testReportDir, "gebtests")
}
也可以直接在任务中设置系统属性:
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
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 路径,您的路径会根据您的路径而有所不同。
添加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
我建议执行以下操作
gradle myTask -DmyParameter=123
使用以下代码
task myTask {
doLast {
println System.properties['myParameter']
}
}
输出应该是
gradle myTask -DmyParameter=123 :myTask 123
构建成功
总时间:2.115 秒