2017-01-31 6 views
6

私は、JUnitに基づいており、Ideaと互換性があるべきであるSpekのテストを含むGradleベースのKotlinプロジェクトを持っています。IntelliJ Ideaが私のSpekテストを認識しないのはなぜですか?

ただし、コンテキストメニューに[実行]メニュー項目は表示されません。

Context menu

なぜ?他のJUnitテストのようにIdeaでSpekテストを実行するためには、私は何をする必要がありますか?ここで

は私のbuild.gradleです:

buildscript { 
    ext.kotlin_version = '1.0.4' 
    repositories { 
    mavenCentral() 
    maven { 
     url "https://dl.bintray.com/jetbrains/spek" 
    } 
    } 
    dependencies { 
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 
    classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3' 
    } 

} 

apply plugin: "kotlin" 
apply plugin: "application" 
apply plugin: 'org.junit.platform.gradle.plugin' 

junitPlatform { 
    filters { 
     engines { 
      include 'spek' 
     } 
    } 
} 

mainClassName = "com.mycompany.myproduct.AppKt" 

sourceSets { 
    deploy 
} 

repositories { 
    mavenCentral() 
    maven { 
    url "https://dl.bintray.com/jetbrains/spek" 
    } 

} 

dependencies { 
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 
    compile 'org.telegram:telegrambots:2.4.2' 
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' 
    compile group: 'ch.qos.logback', name: 'logback-core', version: '1.1.3' 
    compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.3' 
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.6.1' 
    testCompile 'junit:junit:4.11' 
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" 
    testCompile group: 'org.mockito', name: 'mockito-all', version: '2.0.2-beta' 
    testCompile 'org.jetbrains.spek:spek-api:1.1.19' 
    testRuntime 'org.jetbrains.spek:spek-junit-platform-engine:1.1.19' 
} 

test.testClassesDir = project.tasks.compileTestKotlin.destinationDir 

task wrapper(type: Wrapper) { 
    gradleVersion="3.1" 
} 

run { 
    jvmArgs = ["-Xmx100m", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/[...]/log/memdump.log"] 
} 

jar { 
    manifest { 
     attributes 'Main-Class': mainClassName, 
        'Class-Path': configurations.runtime.files.collect {"$it.name"}.join(' ') 
    } 
} 

答えて

5

あなたがSpek plugin for IntelliJをインストールしたことがありますか?

IntelliJプラグインの設定でspekを検索するだけです。あなたはJUnitの4.11を使用しているので

0

、あなたはあなたのbuild.gradleからこれを削除することができます

@RunWith(JUnitPlatform::class) 

出典:http://spekframework.org/docs/latest/#setting-up-legacy

junitPlatform { 
    filters { 
     engines { 
      include 'spek' 
     } 
    } 
} 

は、その後、あなたのテストクラスの宣言の上にこれを追加します

関連する問題