I've created a Gradle file where I define a task to execute Geb tests pretty much as follows:
task gebTest(type: Test {
include 'somePathToTests'
systemProperty 'geb.env', 'chrome'
)
I have the 'chrome' environment configured in my GebConfig.groovy file and that works fine.
What I'd like to do is define a new system property in the Gradle task and be able to use that from within the GebConfig file.
Example of modified Gradle task with new 'remoteUrl' system property declaration:
task gebTest(type: Test {
include 'somePathToTests'
systemProperty 'geb.env', 'chrome'
systemProperty 'remoteUrl', "http://localhost:4444/wd/hub"
)
How I'm trying to use it in the GebConfig file:
standAloneURL = System.getProperty('remoteUrl')
environments {
chrome {
driver = {
chromeOptions.addArguments("--window-size=1920,1080")
chromeOptions.addArguments("--headless")
chromeOptions.addArguments("--disable-gpu")
new RemoteWebDriver(new URL(standAloneURL), chromeOptions)
}
}
}
This always fails though as it seems to not be able to get the property when it's declared in the Gradle task.
But, if I update the GebConfig file by hard coding the 'standAloneURL' to be what I want, it works fine.
Example:
This is confusing me as setting the system property 'geb.env' in my Gradle task works just fine.
Are there any suggestions as to what I may be doing wrong?