У меня есть проект 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 - плагин работает иначе.
Разрешение здесь не работает.