![[Node.js] 트랜잭션을 활용한 테스트 격리 환경 구현하기(1/2)](https://devocean.sk.com/thumnail/2024/9/4/b3b2d4017fdd951afd27980944ce8f41a68589d419b4b62b1b8d2c26328f8346.jpg)
백엔드
[Node.js] 트랜잭션을 활용한 테스트 격리 환경 구현하기(1/2)
두줄요약
TypeORM에서 트랜잭션 기반 테스트 격리 시 세션이 달라지는 문제를 분석했습니다. 하나의 세션을 고정하기 위해 QueryRunner와 Repository 주입 방식을 사용했습니다.
핵심 내용
- TypeORM 환경에서 트랜잭션으로 테스트를 격리하려 했지만, 테스트마다 서로 다른 세션이 사용되어 데이터가 보이지 않는 문제 발생
- 격리수준을 낮추는 방식은 읽기 문제를 일부 완화해도 데드락과 의도치 않은 커밋 문제를 남김
- 하나의 세션을 테스트 전체에 고정하는 방식으로 접근 방향 전환
- DataSource와 QueryRunner, Repository 생성 시 queryRunner 주입을 통해 동일 세션과 롤백 가능한 테스트 환경 구성
