使用Intellij运行GEB测试

时间:2013-01-10 22:34:23

标签: intellij-idea geb

作为GEB测试的初学者,我正在尝试在Intellij中运行一个简单的登录程序。你能帮我在Intellij进行这个测试吗?我的问题是我应该在编辑配置页面中做出哪些选择?请帮忙。这个例子来自geb。

import geb.Browser

Browser.drive {
  go "http://google.com/ncr"

  // make sure we actually got to the page
  assert title == "Google"

  // enter wikipedia into the search field
  $("input", name: "q").value("wikipedia")

  // wait for the change to results page to happen
  // (google updates the page dynamically without a new request)
  waitFor { title.endsWith("Google Search") }

  // is the first link to wikipedia?
  def firstLink = $("li.g", 0).find("a.l")
  assert firstLink.text() == "Wikipedia"

  // click the link 
  firstLink.click()

  // wait for Google's javascript to redirect to Wikipedia
  waitFor { title == "Wikipedia" }
}

2 个答案:

答案 0 :(得分:2)

如果您在IntelliJ中运行它,您应该可以将其作为JUnit测试(ctrl + F10)运行。确保它在Class和方法中。

为了便于语法化,最好使用Spock作为您的BDD框架(在您的项目中包含库;如果使用Maven,请遵循网站上的指南,但更新到Spock 0.7-groovy-2.0和Geb 0.9。 0-RC-1用于最新的库

如果你想从直接JUnit切换到Spock(请记住你应该使用JUnit作为静默库),那么你的测试用例如下所示:

  def "show off the awesomeness of google"() {
    given:
    go "http://google.com/ncr"

    expect: "make sure we actually got to the page"
    title == "Google"

    when: "enter wikipedia into the search field"
    $("input", name: "q").value("wikipedia")

    then: "wait for the change to results page to happen and (google updates the page dynamically without a new request)"
    waitFor { title.endsWith("Google Search") }
    // is the first link to wikipedia?
    def firstLink = $("li.g", 0).find("a.l")

    and:
    firstLink.text() == "Wikipedia"

    when: "click the link"
    firstLink.click()

    then: "wait for Google's javascript to redirect to Wikipedia"
    waitFor { title == "Wikipedia" }
}

请记住:Ctrl + F10(IntelliJ中测试的最佳密钥切换!)

答案 1 :(得分:0)

以上是接近但没有雪茄,可以这么说。

如果您想从WITHIN Intellij运行批量标准Gebish测试, 我尝试了两件事。

  1. 我将geckodriver.exe添加到我的Spock / Geb测试下的测试/资源
  2. 我确实在给出:部分我的Spok / Geb测试中做了以下事情:

        given:  
    System.setProperty("webdriver.gecko.driver", "C:\\repo\\geb-example-gradle\\src\\test\\resources" + "\\geckodriver.exe");
    
    1. 失败
    2. 成功
  3. 现在通常处理的答案是,有人写了一些东西,你试了然后就失败了。 所以,如果它不适合你,请在Github上使用参考Geb / Spock项目,如下所示并将其导入intellij(记住,New Project,然后找到gradle.build脚本,然后intellij将很好地导入它)...它也开始建立所以不要惊慌失措:

    1. https://github.com/geb/geb-example-gradle
    2. 下载驱动程序: https://github.com/mozilla/geckodriver/releases 并将其移动到刚刚在test / groovy下导入的参考项目的test / resource文件夹中...(见图)
    3. 现在将以上 given:子句添加到GebishOrgSpec Sock / Geb测试中: Configure the geckodriver.exe in a Spock/Geb test

      测试从WITHIN Intellij运行良好。浏览器打开和测试运行的证据:

      enter image description here

      可爱的工作:=)