如何使用eclipse和gradle为Java项目运行Spock测试?

时间:2018-01-03 21:38:37

标签: java eclipse groovy spock

我在这次测试执行中遇到了麻烦。我已经按照本教程:https://kousenit.org/2011/01/26/an-easier-way-to-add-spock-to-an-eclipsests-project/来配置我的项目。但是当我跑步时,我得到以下例外:

  

未找到类spock.tests.CustomerReaderSpec   java.lang.ClassNotFoundException:spock.tests.CustomerReaderSpec at   java.net.URLClassLoader.findClass(URLClassLoader.java:381)at   java.lang.ClassLoader.loadClass(ClassLoader.java:424)at   sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:335)at at   java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我不知道为什么,因为这个类位于以下文件夹中,如您所见:

enter image description here

这是我的build.gradle:

apply plugin: 'groovy'
apply plugin: 'eclipse'

repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.0.5'

    implementation 'com.google.guava:guava:23.0'

    compile group: 'org.springframework.data', name: 'spring-data-jpa', version: '2.0.2.RELEASE'
    compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.0-api', version: '1.0.1.Final'

    testCompile(
            'junit:junit:4.12',
            'org.codehaus.groovy:groovy-all:2.4.11',
            'org.spockframework:spock-core:1.1-groovy-2.4',
            'org.spockframework:spock-spring:1.0-groovy-2.3'
    )

}

task runScript (dependsOn: 'classes', type: JavaExec) {
    main = 'myscript'
    classpath = sourceSets.main.runtimeClasspath
}

test {
    useJUnit {
        includeCategories 'spock.tests.UnitTest'
    }
    testLogging {
        showStandardStreams = true
    }
}

它可能有什么问题?

修改

关于工具。

我正在使用:

Spring Tool Suite 
Version: 3.9.2.RELEASE
Platform: Eclipse Oxygen.2 (4.7.2)

Plugin for groovy:
Eclipse Groovy Development Tools
Version: 2.9.2.xx-201712201854-e47

Plugin for gradle:
Eclipse buildship
Version: 2.1.2.v20170807-1324

您可以从此处克隆项目: https://github.com/AndyBraveMX/spock-taste

1 个答案:

答案 0 :(得分:2)

我可以在您的示例项目中看到2个问题:

1)缺少CustomerReaderSpec" package spock.tests"在顶部

2)依赖性" org.springframework:spring-test:5.0.2.RELEASE"在testCompile中需要

另外,请确保您为工作区选择的Groovy编译器(Window> Preferences> Groovy> Compiler)匹配 - 至少是major和minor - 您正在使用的groovy-all依赖项的版本。 / p>

通过这些更改,我能够运行spock测试。