0

Being a beginner in GEB testing, I am trying to run a simple login program in Intellij. Could you please help me run this test in Intellij? My question is what selections should I make in the edit configurations page? Please help. This example is from the book of 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" }
}
4

2 回答 2

2

如果您在 IntelliJ 中运行它,您应该能够将它作为 JUnit 测试 (ctrl+F10) 运行。确保这是在一个类的内部和一个方法中。

为了简化语法,最好使用 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 中进行测试的最佳快捷键!)

于 2013-01-11T06:51:50.977 回答
0

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

如果您想在 Intellij 内运行批量标准 Gebish 测试,我尝试了 2 件事。

  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. 成功

现在通常处理答案是,有人写了一些东西,你尝试它,然后它失败了。因此,如果它不适合您,请使用 Github 上的参考 Geb/Spock 项目,如下所示并将其导入 intellij(记住,新建项目,然后找到 gradle.build 脚本,然后 intellij 将很好地导入它)...它还开始构建,所以不要惊慌失措:

  1. https://github.com/geb/geb-example-gradle
  2. 下载驱动程序: https ://github.com/mozilla/geckodriver/releases 并将其移动到您刚刚在 test/groovy 下导入的参考项目的 test/resource 文件夹中...(见图)

现在将上面的given:子句添加到 GebishOrgSpec Sock/Geb 测试中: 在 Spock/Geb 测试中配置 geckodriver.exe

该测试在 WITHIN Intellij 中运行良好。证明浏览器打开并且测试正在运行:

在此处输入图像描述

可爱的工作:=)

于 2018-04-28T16:12:47.070 回答