2017-11-04 1 views
1

IDE内で基本的なSpockテストを実行しようとすると、エラー"test events not received"が表示されます。問題は:test NO-SOURCEに起因するようです。私は何が欠けていますか?Spock - テストイベントが受信されない、 "NO-SOURCE"

Gradleの出力:

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) 
    } 
} 

答えて

1

build.gradleファイルに問題があります。

Gradleは:compileJavaというタスクのみを実行していますが、:compileGroovyは出力していないことに注意してください。

SpockテストクラスはGroovyで書かれているため、構築時に:compileGroovyタスクを実行するようにGradleに指示しない限り、クラスcom.scarlatti.SpockTestは構築されません。

ソリューション:

  • build.gradleapply plugin: 'groovy'が含まれます。これにより、:compileGroovyタスクがGradleの:testタスクグラフにアタッチされます。
  • には、コンパイルの依存関係にorg.codehaus.groovy:groovy-all:2.4.x jarが含まれています。これにより、GradleはGroovyコードをコンパイルできます。 groovyのバージョンと使用しているSpockのバージョンを合わせてください。
+0

'groovy-all'依存関係を明示的に追加する必要はありません.spock-coreを追加するだけで十分です。有効な' groovy-all'が自動的に追加されます。 –

+0

_org.gradle.api.GradleExceptionが発生しました:明示的なGroovy依存関係を含まない場合、Groovy Jarがクラスパス:configuration ':compileClasspath'_に見つかりませんでしたので、Groovyクラスパスを推測できません。 –

関連する問題