【问题标题】:Spring boot Data JPA task :test FailedSpring Boot Data JPA 任务:测试失败
【发布时间】:2021-10-02 23:14:45
【问题描述】:

我开始使用 Spring 中的 Data JPA 与 Postgres 数据库进行交互,但是当我尝试构建项目时,构建阶段会在 applicationTest 中引发异常。

这是我的 build.gradle

plugins {
    id 'org.springframework.boot' version '2.5.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'eu.universome.radio'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    
    implementation 'org.springframework.boot:spring-boot-starter-web'
    //implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

如果我评论依赖项: implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 构建会成功。

这是我的空applicationTest

package eu.universome.radio.RadioUVMServer;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class RadioUvmServerApplicationTests {

    @Test
    void contextLoads() {
    }

}

这里是控制台错误:

Gradle Distribution: Gradle wrapper from target build
Gradle Version: 7.1.1
Java Home: /usr/lib/jvm/java-11-openjdk-amd64
JVM Arguments: None
Program Arguments: None
Build Scans Enabled: false
Offline Mode Enabled: false
Gradle Tasks: build

> Task :compileJava
> Task :processResources UP-TO-DATE
> Task :classes
> Task :bootJarMainClassName
> Task :bootJar
> Task :jar UP-TO-DATE
> Task :assemble
> Task :compileTestJava
> Task :processTestResources UP-TO-DATE
> Task :testClasses

> Task :test FAILED

RadioUvmServerApplicationTests > contextLoads() FAILED
    java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
        Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800
            Caused by: org.springframework.beans.factory.BeanCreationException at ConstructorResolver.java:658
                Caused by: org.springframework.beans.BeanInstantiationException at SimpleInstantiationStrategy.java:185
                    Caused by: java.lang.IllegalStateException at Assert.java:97

1 test completed, 1 failed

您可以在此处找到报告: [1]:https://www.universome.eu/wp-content/uploads/RadioUVM/progetto-radio-unime/reports/tests/test/classes/eu.universome.radio.RadioUVMServer.RadioUvmServerApplicationTests.html

【问题讨论】:

    标签: java postgresql eclipse spring-data-jpa


    【解决方案1】:
    1. 不确定是否添加了依赖项。

    implementation group: 'org.postgresql', name: 'postgresql', version: '42.2.23'

    1. 您可以检查驱动程序是否在类路径中:
    try {
          Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException e) {
          // recheck dependencies
        }
    

    【讨论】:

    • 嗨 @Amey 我解决了这个问题,将这一行 runtimeOnly 'org.postgresql:postgresql' 添加到 build.gradle 文件的依赖项部分
    【解决方案2】:

    已解决添加行

    runtimeOnly 'org.postgresql:postgresql'

    关于 dependencies

    部分中的 build.gradle 文件
    dependencies {
        
        implementation 'org.springframework.boot:spring-boot-starter-web'
        //implementation 'org.springframework.boot:spring-boot-starter-jdbc'
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        runtimeOnly 'org.postgresql:postgresql'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
    }
    

    【讨论】:

      猜你喜欢
      • 2018-05-10
      • 1970-01-01
      • 2016-02-09
      • 2019-01-23
      • 2012-05-21
      • 1970-01-01
      • 2018-05-25
      • 1970-01-01
      • 2017-05-09
      相关资源
      最近更新 更多