Open izgnok opened 3 weeks ago
안녕하세요, 로컬에서 mysql을 사용하게 설정해두었지만 CI/CD가 돌아가는 Github Action에서는 설정된 DB 정보로 연결을 할 수 없기 때문인데요. 따라서 테스트 코드를 실행할 때는 H2를 사용하고, AWS 서버에 올릴 때에는 MySQL 정보를 덮어쓰도록 해야 합니다.
build.gradle에 h2 추가
runtimeOnly 'com.h2database:h2'
application.yml jpa 속성 변경
spring:
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
defer-datasource-initialization: true
application.yml datasource 정보 제거
# 이 부분을 주석 처리 하거나 제거해주세요
datasource:
url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=UTF-8 # MySQL 데이터베이스 연결 URL
username: ssafy # MySQL 접속 ID
password: ssafy # MySQL 접속 비밀번호
driver-class-name: com.mysql.cj.jdbc.Driver # MySQL JDBC 드라이버 클래스 이름
이렇게 해보고 다시 돌릴 때 저는 잘 되었는데 한 번 확인해봐주시겠어요?
감사합니다. 하지만 시키시는대로 해보았지만 여전히 오류가 납니다.
Github: https://github.com/izgnok/springboot-developer
CI/CD에서 자꾸 에러가납니다. Build with Gradle부분에서 에러가 나는데, 에러 내용은 아래와 같습니다. ( 로컬에서는 테스트가 잘 작동하고, 테스트를 모두 주석처리하면 CI/CD에서 에러가 나지않습니다.. )
Run ./gradlew clean build Downloading https://services.gradle.org/distributions/gradle-8.5-bin.zip ............10%.............20%............30%.............40%.............50%............60%.............70%.............80%............90%.............100%
Welcome to Gradle 8.5!
Here are the highlights of this release:
For more details see https://docs.gradle.org/8.5/release-notes.html
Starting a Gradle Daemon (subsequent builds will be faster)
TokenProviderTest > validToken(): 유효한 토큰인 경우에 유효성 검증에 성공한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1775 Caused by: org.hibernate.service.spi.ServiceException at AbstractServiceRegistryImpl.java:276 Caused by: org.hibernate.HibernateException at DialectFactoryImpl.java:190
TokenProviderTest > validToken(): 만료된 토큰인 경우에 유효성 검증에 실패한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
TokenProviderTest > getAuthentication(): 토큰 기반으로 인증정보를 가져올 수 있다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
TokenProviderTest > getUserId(): 토큰으로 유저 ID를 가져올 수 있다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
TokenProviderTest > generateToken(): 유저 정보와 만료 기간을 전달해 토큰을 만들 수 있다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > findArticle: 잘못된 HTTP 메서드로 아티클을 조회하려고 하면 조회에 실패한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1775 Caused by: org.hibernate.service.spi.ServiceException at AbstractServiceRegistryImpl.java:276 Caused by: org.hibernate.HibernateException at DialectFactoryImpl.java:190
BlogApiControllerTest > addComment: 댓글 추가에 성공한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > deleteArticle: 아티클 삭제에 성공한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > addArticle: 아티클 추가할 때 title이 10자를 넘으면 실패한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > findArticle: 존재하지 않는 아티클을 조회하려고 하면 조회에 실패한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > findArticle: 아티클 단건 조회에 성공한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > findAllArticles: 아티클 목록 조회에 성공한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > addArticle: 아티클 추가에 성공한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > addArticle: 아티클 추가할 때 title이 null이면 실패한다. FAILED 16 tests completed, 16 failed java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
BlogApiControllerTest > updateArticle: 아티클 수정에 성공한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
TokenApiControllerTest > createNewAccessToken: 새로운 액세스 토큰을 발급한다. FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:145
FAILURE: Build failed with an exception.
For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 39s 7 actionable tasks: 6 executed, 1 up-to-date Error: Process completed with exit code 1.