无法找到spock.lang.Specification

时间:2017-02-04 13:07:31

标签: spock geb

我正在尝试使用Geb + Spock进行Web自动化测试,但它一直告诉我:

Caught: java.lang.NoClassDefFoundError: spock/lang/Specification
Caused by: java.lang.ClassNotFoundException: spock.lang.Specification

我想我已经添加了spock可能需要的东西......?

@Grapes([
    @Grab('org.gebish:geb-core:1.1.1'),
    @Grab('org.seleniumhq.selenium:selenium-chrome-driver:2.42.0'),
    @Grab('org.seleniumhq.selenium:selenium-support:2.42.0'),
    @Grab('org.gebish:geb-spock:1.1.1')
])

import geb.spock.GebSpec
import spock.lang.*

class GoogleSpec extends GebSpec{
    def "Google search"() {
        given:
        to GooglePage

        when:
        searchBox.value == "Dogs"

        and:
        searchButton.click()

        then:
        at ResultPage
    }
}

2 个答案:

答案 0 :(得分:0)

好吧,也许您还想将依赖项添加到

  • Spock本身:
    org.spockframework:spock-core:1.0-groovy-2.4
  • 或者,如果你想在Spock中模拟类(除了接口):
    cglib:cglib-nodep:3.2.4
  • 可选地,如果你觉得在Spock中模拟最终课程(请不要,它是邪恶的!)和没有默认构造函数的课程(那很好)的强烈要求:
    org.objenesis:objenesis:2.2

我对Gradle一无所知,但我在Maven中使用的那些。

P.S。:也许下次您想使用自己喜欢的网络搜索引擎首先查找示例项目或文档。你应该找到很多。

答案 1 :(得分:0)

是的 - 你需要spock-core而不是spock-parent或其他任何东西。

org.spockframework:spock-core:1.1-groovy-2.4-rc-3