Geb测试忽略了在IntelliJ中启动的GebConfig.groovy文件

时间:2018-10-10 14:53:32

标签: intellij-idea groovy selenium-chromedriver geb

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

我正在使用Chrome驱动程序。

当我键入 System.setProperty("webdriver.chrome.driver", "my/path") 在我的规范文件中,然后右键单击并选择运行,该测试将正常运行,这意味着它将打开Chrome并加载页面。

当我不在spec文件中执行此操作,而是将其保留在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: 
          ....
     }
 }

1 个答案:

答案 0 :(得分:2)

要解决此问题,如果要将路径保留在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 config中,并在intelliJ中创建用于本地运行的运行配置。

右键单击规范文件>单击“创建'nameOfMySpec'”。

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

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

同样值得考虑的是一个可以通过Jenkins等调用的shell脚本:

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