Как настроить KoTest с Gradle в проекте LibGdx? В настоящее время не может собрать, потому что StringSpe c не распознан - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть стандартная настройка проекта LibGdx с помощью инструмента LibGdx, предназначенная только для рабочего стола. Он использует Gradle (Groovy DSL) для управления зависимостями и задачами. Я преобразовал основной модуль в Kotlin и пытаюсь добавить тестовый модуль Kotlin с помощью Kotest.

Я следовал инструкциям Kotest для Gradle на их GitHub, но компиляция не удалась, потому что StringSpec не был повторно идентифицирован (Unresolved reference: StringSpec). Я думаю, что установка Gradle в LibGdx по умолчанию может быть немного устаревшей или использовать более старый синтаксис / структуру, и, возможно, она противоречит инструкциям Kotest, предназначенным для более новых версий Gradle?

Пока я удалил любой тест и просто пытаюсь заставить его распознавать StringSpec и компилировать. Я даже не дошел до того, чтобы заставить IntelliJ распознавать и запускать тесты. Вот что у меня есть:

core.tests / tests / com / me / game / AcceptanceTests.kt

package com.jansky.myproject

class AcceptanceTests : StringSpec() {

}

core.tests / gradle.build

version '1.0'

sourceCompatibility = 1.7
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

sourceSets.main.java.srcDirs = [ "tests/" ]

tasks.withType(Test) {
    useJUnitPlatform()
}

eclipse.project.name = appName + "-core.tests"

. / build.gradle (ie root buildfile)

buildscript {
    ext.kotlinVersion = '1.3.71'

    repositories {
        mavenLocal()
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" }
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        jcenter()
        google()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
    }
}

allprojects {
    apply plugin: "eclipse"

    version = '1.0'
    ext {
        appName = "game"
        gdxVersion = '1.9.10'
        roboVMVersion = '2.3.8'
        box2DLightsVersion = '1.4'
        ashleyVersion = '1.7.0'
        aiVersion = '1.8.0'
    }

    repositories {
        mavenLocal()
        mavenCentral()
        jcenter()
        google()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "https://oss.sonatype.org/content/repositories/releases/" }
    }
}

project(":desktop") {
    apply plugin: "kotlin"


    dependencies {
        implementation project(":core")
        api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
        api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
        compile "com.badlogicgames.ashley:ashley:1.7.3"
        compile group: 'io.github.libktx', name: 'ktx-ashley', version: '1.9.10-b4'
    }
}

project(":core") {
    apply plugin: "kotlin"

    dependencies {
        api "com.badlogicgames.gdx:gdx:$gdxVersion"
        compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
        compile "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"
        compile "com.badlogicgames.ashley:ashley:1.7.3"
        compile group: 'io.github.libktx', name: 'ktx-ashley', version: '1.9.10-b4'
    }
}

project(":core.tests") {
    apply plugin: "kotlin"

    test {
        useJUnitPlatform()
    }

    dependencies {
        api "com.badlogicgames.gdx:gdx:$gdxVersion"
        compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
        compile "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"
        compile "com.badlogicgames.ashley:ashley:1.7.3"
        compile group: 'io.github.libktx', name: 'ktx-ashley', version: '1.9.10-b4'
        implementation 'io.kotest:kotest-runner-junit5:4.0.2'
        implementation 'io.kotest:kotest-assertions-core:4.0.2'
    }
}

настроек. gradle

include 'desktop', 'core', 'core.tests'

Gradle-wrapper.properties

#Sat Apr 04 15:53:20 BST 2020
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

У меня нет большого опыта JVM, поэтому я немного утрата. Надеюсь, я пропустил что-то очевидное для того, кто лучше знает Грэдла. Есть идеи?

...