[typescript] 테스트 환경과 개발 환경 분리하기

프로젝트에서 테스트 환경과 개발 환경을 분리하는 이유는 다양합니다. 먼저, 테스트 환경을 독립적으로 구성함으로써 개발 환경과의 의존성을 줄일 수 있습니다. 또한, 테스트 환경에서는 테스트 전용 데이터베이스나 API를 사용하여 실제 환경에서 발생할 수 있는 문제를 사전에 감지할 수 있습니다.

테스트 환경과 개발 환경 분리하기

1. 환경 변수 설정

프로젝트를 테스트 환경과 개발 환경으로 분리하기 위해서는 환경 변수를 설정해야 합니다. dotenv 라이브러리를 사용하여 .env 파일을 생성하고, 각 환경에 따른 설정 값을 저장할 수 있습니다.

# .env.development
DATABASE_URL=dev_database_url
API_KEY=dev_api_key

# .env.test
DATABASE_URL=test_database_url
API_KEY=test_api_key

2. 구성 파일 조정

프로젝트의 구성 파일에서 환경 변수를 로드하여 사용할 수 있도록 조정해야 합니다. dotenv 라이브러리를 사용하는 경우, 다음과 같이 환경 변수를 로드할 수 있습니다.

import dotenv from 'dotenv';
dotenv.config({ path: `.env.${process.env.NODE_ENV}` });

3. 스크립트 수정

package.json 파일의 스크립트를 조정하여 테스트 환경과 개발 환경에 따라 다른 구성으로 실행할 수 있습니다. 예를 들어, 다음과 같이 start 스크립트를 수정할 수 있습니다.

"scripts": {
  "start": "NODE_ENV=development node server.js",
  "test": "NODE_ENV=test jest"
}

위와 같이, TypeScript 프로젝트에서 테스트 환경과 개발 환경을 분리하여 관리할 수 있습니다. 이를 통해 효율적인 테스트 및 안정적인 개발 프로세스를 유지할 수 있습니다.