0

试图弄清楚这个geb和spock测试框架并遇到一些问题。现在我只是在努力让 spock 工作。

@Grab(group='org.codehaus.geb', module='geb-core', version='0.7.2')
@Grab(group='org.seleniumhq.selenium', module='selenium-firefox-driver', version='2.31.0')
@Grab(group='org.spockframework', module='spock-core', version='0.6-groovy-1.7')
@Grab(group='org.codehaus.groovy', module='groovy-all', version='1.8.6')

import geb.*
import org.openqa.selenium.firefox.FirefoxDriver
import spock.lang.*


class TestSimpleGoogle extends Specification {
    def "pushing an element on the stack"() {
        when: "A variable is defined"
        title = "Hello"

        then: "Check to see if it equals hello"
        assert(title == "Hello")
    }
}

这是我从命令终端得到的输出

Caught: java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.InvokerHelper.getVersion()Ljava/lang/String;
java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.InvokerHelper.getVersion()Ljava/lang/String;
        at org.spockframework.util.GroovyReleaseInfo.getVersion(GroovyReleaseInfo.java:23)
        at org.spockframework.util.VersionChecker.<clinit>(VersionChecker.java:18)
        at org.spockframework.compiler.SpockTransform.<init>(SpockTransform.java:43)

想法?

4

2 回答 2

1

您为您正在抓取的 Groovy 版本抓取了错误版本的 spock,我不确定您为什么要抓取 groovy...

这适用于 Groovy 2.1.2:

@Grab( 'org.spockframework:spock-core:0.7-groovy-2.0' )
import spock.lang.*

class TestSimpleGoogle extends Specification {
  def "pushing an element on the stack"() {
    when: "A variable is defined"
      def title = "Hello"

    then: "Check to see if it equals hello"
      title == "Hello"
    }
}
于 2013-03-22T14:38:45.027 回答
1

对于 Groovy 1.8,您需要一个以groovy-1.8. 要开始,您唯一需要的是@Grab(group='org.spockframework', module='spock-core', version='0.7-groovy-1.8').

于 2013-03-22T14:38:57.803 回答