Intellij idea Geb测试忽略IntelliJ中启动的GebConfig.groovy文件
在IntelliJ IDEA中运行。 GebConfig.groovy位于Intellij idea Geb测试忽略IntelliJ中启动的GebConfig.groovy文件,intellij-idea,groovy,selenium-chromedriver,geb,Intellij Idea,Groovy,Selenium Chromedriver,Geb,在IntelliJ IDEA中运行。 GebConfig.groovy位于/src/test/resources中 我正在使用Chrome驱动程序 我打字的时候 System.setProperty(“webdriver.chrome.driver”、“my/path”) 在我的spec文件中,我右键单击并选择run,测试工作,这意味着它打开Chrome并加载页面 当我在spec文件中没有这样做,而只是将其保留在GebConfig.groovy文件中时,我会收到错误消息“必须设置驱动程序可执行文
/src/test/resources
中
我正在使用Chrome驱动程序
我打字的时候
System.setProperty(“webdriver.chrome.driver”、“my/path”)
在我的spec文件中,我右键单击并选择run,测试工作,这意味着它打开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:
....
}
}
如果要在geb配置中保留路径,要解决问题,请在environment部分之外设置路径,如下所示:
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中创建一个本地运行的运行配置
右键单击等级库文件>单击“创建‘nameOfMySpec’”
现在将驱动程序路径添加到VM参数:
-Dgeb.env=chrome -Dwebdriver.chrome.driver=my/path
还值得考虑一个shell脚本,它也可以通过Jenkins等调用:
mvn test -Dgeb.env=chrome -Dwebdriver.chrome.driver=my/path
如果要在geb配置中保留路径,要解决问题,请在environment部分之外设置路径,如下所示:
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中创建一个本地运行的运行配置
右键单击等级库文件>单击“创建‘nameOfMySpec’”
现在将驱动程序路径添加到VM参数:
-Dgeb.env=chrome -Dwebdriver.chrome.driver=my/path
还值得考虑一个shell脚本,它也可以通过Jenkins等调用:
mvn test -Dgeb.env=chrome -Dwebdriver.chrome.driver=my/path
我试过你的建议。同样的错误也发生了。我使用的是旧版本的想法。我将升级并重试。一个问题:如果我真的让它工作了,这是否意味着我必须对每个规范文件重复这个?我宁愿避免重复。最终可能会有20个规范文件。(shell脚本选项将涵盖这一点,但只有在我使用mvn的情况下)您可以在运行/调试配置中创建一个“默认值”,这意味着当您通过右键单击>运行在IntelliJ中运行测试时,它将使用默认配置。这将允许您仅在一个位置进行上述设置。如果您希望继续在配置中设置路径,请使用修复程序更新我的答案。这是为了澄清将
System.setProperty
行移到环境
块之外对我有效。非常感谢。我试过你的建议了。同样的错误也发生了。我使用的是旧版本的想法。我将升级并重试。一个问题:如果我真的让它工作了,这是否意味着我必须对每个规范文件重复这个?我宁愿避免重复。最终可能会有20个规范文件。(shell脚本选项将涵盖这一点,但只有在我使用mvn的情况下)您可以在运行/调试配置中创建一个“默认值”,这意味着当您通过右键单击>运行在IntelliJ中运行测试时,它将使用默认配置。这将允许您仅在一个位置进行上述设置。如果您希望继续在配置中设置路径,请使用修复程序更新我的答案。这是为了澄清将System.setProperty
行移到环境
块之外对我有效。非常感谢。