作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试在我的 IDE 中运行基本 Spock 测试时,我收到错误 “未收到测试事件”
。问题似乎是由于 :test NO-SOURCE
。我错过了什么?
渐变输出:
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'
}
简单的 Spock 测试:
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 在构建时运行任务 :compileGroovy
,否则不会构建类 com.scarlatti.SpockTest
。
解决方案:
build.gradle
中包含 apply plugin: 'groovy'
。这会将 :compileGroovy
任务附加到 Gradle 的 :test
任务图。org.codehaus.groovy:groovy-all:2.4.x
jar。这允许 Gradle 编译 Groovy 代码。将 groovy 的版本与您正在使用的 Spock 的版本相匹配。关于groovy - Spock - 未收到测试事件, "NO-SOURCE",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47114474/
我是一名优秀的程序员,十分优秀!