Я отримую помилку "test events not received"
коли я намагаюся запустити базовий тест Споку в моїй IDE. Здається, це питання пов'язано з проблемою :test NO-SOURCE
. Що мені не вистачає?
Градуюча продукція:
C:UserspcIdeaProjectsschema-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)
}
}
Відповіді:
1 для відповіді № 1Проблема полягає в твоїй build.gradle
файл
Зверніть увагу на виході, що Gradle виконує лише завдання :compileJava
, але ні :compileGroovy
.
Класи випробувань Spock написані у Groovy, тому немає класу com.scarlatti.SpockTest
буде побудовано, якщо ви не скажете Gradle, щоб запустити завдання :compileGroovy
на будівництві.
Рішення:
- включати
apply plugin: "groovy"
вbuild.gradle
. Це прикріпить:compileGroovy
завдання до граділяції:test
графік завдання - включати в себе
org.codehaus.groovy:groovy-all:2.4.x
банку у ваших компіляційних залежностях. Це дозволяє Gradle скомпілювати код Groovy. Відповідність версії groovy до версії Spock, яку ви використовуєте.