【发布时间】:2021-01-29 14:05:45
【问题描述】:
我通过 environments {} 闭包在 GebConfig 中声明了一些环境。
如果我在命令行中指定-Dgeb.env,一切都会完美运行。
但是当我出于调试目的启动单个测试时,我不想显式传递任何额外的环境变量。
将 GEB 使用的环境定义为默认值的方法是什么?
【问题讨论】:
标签: groovy automation automated-tests geb
我通过 environments {} 闭包在 GebConfig 中声明了一些环境。
如果我在命令行中指定-Dgeb.env,一切都会完美运行。
但是当我出于调试目的启动单个测试时,我不想显式传递任何额外的环境变量。
将 GEB 使用的环境定义为默认值的方法是什么?
【问题讨论】:
标签: groovy automation automated-tests geb
只需在 environments 之外定义一个默认的 driver 我的 Geb 配置如下所示:
driver = {
new HtmlUnitDriver(true)
}
environments {
html_unit {
driver = {
new HtmlUnitDriver(true)
}
}
phantomjs {
driver = {
WebDriverManager.phantomjs().version("2.1.1").setup()
def pjsDriver = new PhantomJSDriver()
pjsDriver.manage().window().size = new Dimension(1024, 768)
pjsDriver
}
}
chrome {
driver = {
// (...)
}
}
chrome_headless {
System.setProperty("webdriver.chrome.logfile", "chromedriver.log")
System.setProperty("webdriver.chrome.verboseLogging", "true")
driver = {
// (...)
}
}
firefox {
driver = {
// (...)
}
}
ie {
driver = {
// (...)
}
}
edge {
driver = {
// (...)
}
}
opera {
driver = {
// (...)
}
}
win_app {
driver = {
// (...)
}
}
}
【讨论】:
environments 块之外指定的任何内容。因此,基本上展开并移动您想要在 environments 块之外默认的环境的任何配置并完成工作。支持GebConfig 脚本的机制是Groovy 的ConfigSlurper,在blog.mrhaki.com/2009/10/… 中有描述。