it-source

Spring Boot 1.4 @DataJpaTest - 이름이 'dataSource'인 콩 생성 중 오류 발생

criticalcode 2023. 4. 6. 21:46
반응형

Spring Boot 1.4 @DataJpaTest - 이름이 'dataSource'인 콩 생성 중 오류 발생

새로운 스프링 부트 1.4 어플리케이션을 작성했습니다.@DataJpaTest를 사용하여 몇 가지 테스트를 시도하려고 하는데 계속해서 다음 오류 메시지가 나타납니다.

원인: org.springframework.콩류.빈크리에이션예외:이름이 'dataSource'인 콩을 만드는 동안 오류가 발생했습니다.init 메서드를 호출하지 못했습니다.네스트된 예외는 java.lang입니다.InlogalStateException: 테스트에 사용할 내장 데이터베이스를 확인할 수 없습니다.내장형 데이터베이스를 원하는 경우 지원되는 데이터베이스를 클래스 경로에 저장하십시오.

src/main/main/application.properties

spring.datasource.url=jdbc:mysql://localhost/my_db
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

마이리포지토리시험

@RunWith(SpringRunner.class)
@DataJpaTest
final public class MyRepositoryTest {
}

build.gradle

dependencies {
    compile 'org.springframework.boot:spring-boot-starter-web',
            'org.springframework.boot:spring-boot-starter-data-jpa',
            'mysql:mysql-connector-java',
            'org.projectlombok:lombok:1.16.10'

    testCompile('org.springframework.boot:spring-boot-starter-test')
}

내가 뭘 잘못하고 있는지 알기나 해?

기본적으로 임베디드 데이터베이스는 제공하지 않습니다.디폴트DataJpaTest를 치환합니다.DataSource내장형 데이터베이스만 있으면 됩니다.

따라서 MySQL을 사용하여 테스트하는 경우 테스트를 다음과 같이 바꿉니다.

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
final public class MyRepositoryTest {
}

이러한 테스트에 메모리 내 데이터베이스를 사용하려면 테스트 클래스 경로에 데이터베이스를 추가해야 합니다.gradle 파일에 추가

testCompile('com.h2database:h2')

수업 전에 이것을 추가해 주세요.

@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)

확실히 달릴 수 있을 거야.

언급URL : https://stackoverflow.com/questions/41315386/spring-boot-1-4-datajpatest-error-creating-bean-with-name-datasource

반응형