我在这次测试执行中遇到了麻烦。我已经按照本教程: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)
我不知道为什么,因为这个类位于以下文件夹中,如您所见:
这是我的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
答案 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测试。