Geb test 忽略在 IntelliJ 中启动的 GebConfig.groovy 文件



运行在IntelliJ IDEA中。 GebConfig.groovy 在/src/test/resources.

我正在使用Chrome驱动程序。

当我打字时System.setProperty("webdriver.chrome.driver", "my/path")在我的规范文件中,我右键单击并选择运行,测试有效,这意味着它会打开 Chrome 并加载页面。

当我不在规范文件中执行此操作,而只是将其保留在 GebConfig.groovy 文件中时,我收到错误消息"必须设置驱动程序可执行文件的页面"。

有一个气隙,所以我不能复制粘贴;我将在这里输入尽可能多的内容: GebConfig.groovy:

import org.openqa.selenium.chrome.ChromeDriver
...
environments {
chrome {
System.setProperty("webdriver.chrome.driver", "my/path")
driver = {new ChromeDriver()}
}
}

spec 文件非常简单,就像 GitHub 上的示例一样

import LoginPage
import geb.spock.GebReportSpec
class LoginSpec extends GebReportSpec
{
// Works when I put this here, but I should not have to do this!
System.setProperty("webdriver.chrome.driver", "my/path")
def "user can log in" () {
when: "log in as me"
def loginPage = to LoginPage
loginPage.login("me")
then: 
....
}
}

如果您想在geb 配置中保留路径,要解决问题,像这样设置环境部分之外的路径应该可以:

import org.openqa.selenium.chrome.ChromeDriver
System.setProperty("webdriver.chrome.driver", "my/path")
//You can also set the driver up here as a default and running with an environment set will override it
driver = {new ChromeDriver()}

environments {
chrome {
driver = {new ChromeDriver()}
}
}

就个人而言,我会避免将驱动程序路径添加到 geb 配置中,而是在 intelliJ 中创建运行配置以在本地运行。

右键单击规范文件>单击"创建'名称我的规范'"。

现在,将驱动程序路径添加到 VM 参数:

-Dgeb.env=chrome -Dwebdriver.chrome.driver=my/path

还值得考虑一个 shell 脚本,然后也可以通过 Jenkins 等调用:

mvn test -Dgeb.env=chrome -Dwebdriver.chrome.driver=my/path

相关内容

  • 没有找到相关文章

最新更新