본문 바로가기
DevOps/AWS

EC2 - ./gradlew test 실패

by 어렵다어려웡 2021. 6. 9.

개인 프로젝트를 진행하면서 프로젝트 배포를 위해서 이동욱님이 출판하신

'스프링 부트와 AWS로 혼자 구현하는 웹 서버스' 를 보고 AWS를 설정하는 도중에

테스트 코드를 테스트 하는 곳에서 에러가 났다.

 

java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
        Caused by: org.springframework.beans.factory.BeanDefinitionStoreException at ConfigurationClassParser.java:189
            Caused by: java.io.FileNotFoundException at ClassPathResource.java:187

모든 테스트 메서드에 해당 에러가 나타나는 현상이 발생하여 pass받지 못하는 상황이 발생..

application.properties의 DB 관련 코드가 로컬로 설정되어 있어서 안되는건가 싶어서

 

RDS로 변경해서 재시작 해봤으나 안된다..

똑같은 에러가 발생한다.

사실 ./gradlew 을 실행시키면 아래와 같이 디렉토리가 없다고 에러가 나고 테스트가 진행된다.

 

[ec2-user@commerce-jpa Commerce-JPA]$ ./gradlew test
./gradlew: line 39: cd: "./: No such file or directory

일단 해당 에러를 좀 없애기 위해서 검색을 해본 결과 gradle 버전을 업그레이드 하는 방법으로

해결을 했고 이후 다시 테스트를 진행해보았다.

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000eaaa0000, 178978816, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 178978816 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/ec2-user/.gradle/daemon/7.0/hs_err_pid4794.log

이런식으로 에러가 나타나네요

이전에 다른 프로젝트에서 발생했던 메모리 부족문제가 여기서도 나타나네요.

 

free -h 로 메모리 확인

[ec2-user@commerce-jpa Commerce-JPA]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           983M        664M        135M        432K        183M        182M
Swap:            0B          0B          0B

기존에 있던 해결방법을 보고 해결을 한 후

다시 ./gradlew test 로 프로젝트 테스트 진행.

 

> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

 기적적으로 또 다른 에러를 낳았다.

 

기존에 있는 테스트 코드들이 에러가 있지않은데.. 

나에게 나타나는 에러는 지금 검색해봐도 예외케이스인거 같다.. 답도 없다 ㅋㅋ

 

동일한 케이스였으면 삽질이 조금 덜 했을텐데 덕분에 끝나지 않았다.

 

개발자로 일하기 위해서는 EC2 관련해서 나타나는 것들도 해결해야 할텐데 

서버단은 해결하는데 항상 시간도 너무 많이 잡아먹고..

핵 신입 개발자들에게는 엄청난 장벽인것 같다.