Добавление интеграционных тестов в проект Kotlin с использованием Kotlin Gradle DSL - PullRequest
0 голосов
/ 29 августа 2018

Я хотел бы добавить дополнительный «исходный набор» в проект Kotlin, который будет содержать интеграционные тесты. Я видел несколько постов, в которых рассказывалось о том, как сделать это для ванильного Java-проекта или для Kotlin, но используя Groovy, а не Kotlin Gradle DSL.

В итоге, используя Kotlin Gradle DSL:

  • как добавить дополнительный «исходный набор», который может содержать код Kotlin, код Java и ресурсы для отделения интеграционных тестов от обычных модульных тестов?
  • как добавить дополнительную задачу и конфигурацию для запуска интеграционных тестов отдельно от модульных тестов?

Я ожидаю, что структура каталогов будет выглядеть примерно так:

src
   main
      java
      kotlin
      resources
   test
      java
      kotlin
      resources
   integration
      java
      kotlin
      resources

Связанный:

Спасибо

1 Ответ

0 голосов
/ 20 июня 2019

Вы должны добавить следующую конфигурацию в файл build.gradle

configurations {
    integrationTestImplementation.extendsFrom implementation
    integrationTestRuntimeOnly.extendsFrom runtimeOnly
}


dependencies {
    intTestImplementation 'junit:junit:4.12'
    ...
}

sourceSets {
    integrationTest {
        kotlin {
            compileClasspath += main.output + test.output
            runtimeClasspath += main.output + test.output
            srcDir file('src/integrationTest/kotlin')
        }
    }
}

task integrationTest(type: Test, dependsOn: []) {
    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath
    useJUnitPlatform()
}

Источник: https://docs.gradle.org/current/userguide/java_testing.html#sec:configuring_java_integration_tests

...