Groovy Spock-未收到测试事件,“;“无来源”;
尝试在IDE中运行基本Spock测试时,我收到错误“未接收测试事件”。问题似乎是由于Groovy Spock-未收到测试事件,“;“无来源”;,groovy,spock,Groovy,Spock,尝试在IDE中运行基本Spock测试时,我收到错误“未接收测试事件”。问题似乎是由于:测试无源代码造成的。我错过了什么 渐变输出: C:\Users\pc\IdeaProjects\schema-test>gradlew :cleanTest :test --tests com.scarlatti.SpockTest :cleanTest UP-TO-DATE :compileJava NO-SOURCE :processResources :classes :compileTestJav
:测试无源代码造成的。我错过了什么
渐变输出:
C:\Users\pc\IdeaProjects\schema-test>gradlew :cleanTest :test --tests com.scarlatti.SpockTest
:cleanTest UP-TO-DATE
:compileJava NO-SOURCE
:processResources
:classes
:compileTestJava NO-SOURCE
:processTestResources NO-SOURCE
:testClasses UP-TO-DATE
:test NO-SOURCE
BUILD SUCCESSFUL
项目结构:
src
├───main
│ └───groovy
│ └───com
│ └───scarlatti
│ └───App.java
└───test
└───groovy
└───com
└───scarlatti
SpockTest.groovy
build.gradle:
apply plugin: 'java'
apply plugin: 'idea'
repositories {
mavenCentral()
}
dependencies {
testCompile 'org.spockframework:spock-core:1.1-groovy-2.4'
testCompile 'cglib:cglib-nodep:2.2'
}
简单斯波克试验:
class SpockTest extends Specification {
@Test
"test that a spock test will run"() {
when:
println "running spock test..."
then:
notThrown(Exception)
}
}
问题在于build.gradle
文件中
从输出中注意,Gradle只运行任务:compileJava
,而不是:compileGroovy
Spock测试类是用Groovy编写的,因此除非您告诉Gradle在构建时运行task:compileGroovy
,否则不会构建任何类com.scarlati.SpockTest
解决方案:
- 在
build.gradle
中包括apply插件:“groovy”
。这将把:compileGroovy
任务附加到Gradle的:test
任务图上
- 在编译依赖项中包括
org.codehaus.groovy:groovy-all:2.4.x
jar。这允许Gradle编译Groovy代码。将groovy的版本与您正在使用的Spock的版本相匹配
groovy-all
依赖项不必显式添加-添加spock-core
就足够了,将自动添加有效的groovy all
。我得到org.gradle.api.GradleException:无法推断groovy类路径,因为在类路径:配置:compileClasspath“上找不到groovy Jar,但不包括显式groovy依赖项。