如何将 JVM 系统属性传递给我的测试?
我有以下任务
task testGeb(type:Test) {
jvmArgs '-Dgeb.driver=firefox'
include "geb/**/*.class"
testReportDir = new File(testReportDir, "gebtests")
}
系统属性似乎没有进入 Geb 测试,因为 Geb 不会生成 Firefox 来运行测试。当我在 Eclipse 中设置相同的系统属性并运行测试时,一切正常。
I have the following task
task testGeb(type:Test) {
jvmArgs '-Dgeb.driver=firefox'
include "geb/**/*.class"
testReportDir = new File(testReportDir, "gebtests")
}
The system property doesn't appear to make it to the Geb tests, as Geb does not spawn Firefox to run the tests. When I set the same system property in Eclipse and run the tests, everything works fine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
尝试使用系统属性:
Try using system properties:
您还可以直接在任务中设置系统属性:(
上面的解决方案也适用于与
Test
不同的任务类型)或者如果您希望能够从命令行传递不同的属性,您可以在任务定义中包含更灵活的解决方案:
然后您可以运行:
./gradlew testGeb -D[anyArg]=[anyValue]
,在您的情况下:./gradlew testGeb -Dgeb.driver=firefox
You can also directly set the system property in the task:
(the solution above will also work for task type different from
Test
)or if you would like to be able to pass different properties from the command line, you can include a more flexible solution in the task definition:
and then you can run:
./gradlew testGeb -D[anyArg]=[anyValue]
, in your case:./gradlew testGeb -Dgeb.driver=firefox
注意:我使用的是 Ubuntu 操作系统,并且我在 /usr/bin/google_chrome/ 中指定了 chrome_driver 路径,并且您的路径根据您的路径而有所不同。
Note: I used Ubuntu OS and the chrome_driver path I specified in /usr/bin/google_chrome/ and your path varies according to your path.
在您的任务中添加
systemProperties System.getProperties()
以便在运行测试时可以对其进行配置。例如
Add
systemProperties System.getProperties()
in your taskSo that it will be configurable while running the test. For example
我建议
使用以下代码执行以下
操作输出应为
gradle myTask -DmyParameter=123
:我的任务
123
构建成功
总时间:2.115 秒
I would recommend doing the following
with the following code
The output should be
gradle myTask -DmyParameter=123
:myTask
123
BUILD SUCCESSFUL
Total time: 2.115 secs