오류 해결4

이석원·2022년 9월 4일
0
  • jest-unit test: MissingDriverError: Wrong driver

    오류 원인: 이러한 에러는 대개 mysql 과 연결에 실패했을 때 발생한다. 다양한 방법으로 에러를 해결하려 하지만 쉽지 않다. 적어도 내가 할 수 있는 바는 다했고 이제 검색을 해봐야 겠다. 하지만 이 문제를 찾을 수 있을지 모르겠다. ⇒ 찾았다. 환경변수를 넣어줘야 했다. 순서도 중요하다. typeorm 서버를 불러오기 전에 환경변수 관련 config 를 먼저 불러야 한다. 다음과 같다.

    오류 해결: 아래와 같이 고쳤다. 그러나 새로운 에러가 나타났으니….

  • jest-unit test: ReferenceError: You are trying to import a file after the Jest environment has been torn down. From src/models/userDao.test.js.

    오류의 증상: 아래 스크린샷과 같다. 테스트는 돌아가는데 에러가 발생하고 터미널 상에서 비정상 종료된 흔적이 남아있다.

    오류의 원인: 탐색중이다. db 연결 문제로 보인다. 본래 react 를 테스트하기 위해 만들어졌기 때문에 node 에서 db 를 연결하는 테스트는 영 쥐약이다. 아예 통합 테스트로 넘어가는게 좋겠다. 문제의 원인을 찾았다. 예상했던 바로 그녀석이었다. datasource.js 는 initialize 를 겸하고 있었다. 그래서 userDao 를 불러올 때 마다 datasource 의 appDataSource.initialize() 가 실행됐다. 문제는 테스트에 걸리는 시간이 데이터베이스를 실행시키는 시간보다 빨랐다. 그래서 위와 같은 오류가 발생했다.

    오류 해결: 위의 오류는 내가 해결하기에는 벅차 보인다. 따라서 유닛 테스트가 아니라 통합 테스트를 실행하는것으로 바꿔야 할지도 모르겠다. 그러나 결국 해결했다. initialize 를 server.js 로 옮기고 datasource 는 db 와의 연결만 제공하도록 바꿨다. 다음과 같다.


profile
개발자 공부중

0개의 댓글