Groovy收到字符串错误

时间:2013-03-22 14:26:35

标签: groovy spock

试图找出这个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)

思想?

2 个答案:

答案 0 :(得分: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"
    }
}

答案 1 :(得分:1)

对于Groovy 1.8,您需要一个以groovy-1.8结尾的Spock版本。要开始使用,您唯一需要的就是@Grab(group='org.spockframework', module='spock-core', version='0.7-groovy-1.8')