плагин kotlin-jpa не создает пустых конструкторов для тестов Junit - PullRequest
1 голос
/ 04 июля 2019

У меня есть проект Spring Boot Kotlin с базой данных. У меня есть тесты JUnit, которые используют встроенную базу данных.

Вот @Entity Я хочу проверить

@Entity
@Table(name = "client")
data class Client(
        @Id
        @Column(name = "id")
        val id: UUID,

        @Column(name = "modified_on")
        var modifiedOn: OffsetDateTime = OffsetDateTime.now(),
)

Когда я запускаю тест с использованием gradle (./gradlew clean test), тесты завершаются успешно.

Когда я запускаю тест через IntelliJ (щелкните правой кнопкой мыши> запустите все тесты), я получаю сообщение об ошибке:

org.springframework.orm.jpa.JpaSystemException: No default constructor for entity

Документы на веб-сайте Kotlin дают понять: использование плагина 'kotlin-jpa' автоматически создает конструкторы без аргументов для классов, помеченных @Entity

Если я зайду в Структура проекта> Аспекты> Kotlin> Основной или тестовый Kotlin> Плагины компилятора, я могу увидеть два плагина: kotlin-allopen и kotlin-noarg. Похоже, они настроены правильно, а kotlin-noarg указывает @Entity.

Я указал плагин в build.gradle

plugins {
    id 'org.springframework.boot' version '2.1.4.RELEASE'
    id 'org.jetbrains.kotlin.jvm' version '1.3.41'
    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.41'
    // kotlin-jpa plugin allows no-arg constructors, e.g. on @Entity
    id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.41'
}

Как получить тесты JUnit, которые зависят от плагина kotlin-noarg, для запуска в IntelliJ?


Похожие:

У них нет разрешения. Они также не специфичны для JUnit и IntelliJ - плагин работает иначе.

Разрешение здесь не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...