Ts-jest
TypeScript 코드를 jest에서 테스트할 경우 필요.
Installation
테스트 유닛 작성시 jest의 타입 정보 제공을 위해 @types/jest도 함께 설치하자:
기본 설정파일은 다음과 같이 생성 가능:
Config
ts-jest에 typescript코드를 직접 넘겨주기 위해 다음과 같이 package.json파일의 jest
속성(또는 jest.config.js 파일)에 preset
을 사용하면 된다:
또는 transform
으로 매치된 파일을 넘기는 방법도 있다: (테스트 필요)
module.exports = {
"testMatch": [
"**/__tests__/**/*.+(ts|tsx|js)",
"**/?(*.)+(spec|test).+(ts|tsx|js)"
],
"transform": {
"^.+\\.(ts|tsx)$": "ts-jest"
},
}
Presets
ts-jest는 프로젝트의 기본 구성 대부분을 포함하는 여러 사전 설정과 함께 제공됩니다:
-
ts-jest/presets/default
orts-jest
-
ts-jest/presets/default-esm
-
ts-jest/presets/js-with-ts
-
ts-jest/presets/js-with-ts-esm
-
ts-jest/presets/js-with-babel
-
ts-jest/presets/js-with-babel-esm
Isolated Modules option
기본적으로 ts-jest는 전체 유형 검사 및 기능과 함께 프로젝트의 컨텍스트에서 TypeScript 컴파일러를 사용합니다. 그러나 TypeScript에서 "Isolated Modules"이라고 부르는 각 파일을 개별적으로 컴파일하는 데 사용할 수도 있습니다. 이것이 바로 isolatedModules 옵션 (기본값은 false
임)이 하는 일입니다.
유형 검사 기능과 const enum
과 같은 일부 기능을 잃게 되지만 캐시를 비활성화한 상태(jest --no-cache
)로 Jest를 사용하려는 경우 테스트가 훨씬 빠르게 실행됩니다.
유형 검사를 비활성화하고 각 파일을 격리된 모듈로 컴파일하는 방법은 다음과 같습니다.
jest.config.js에서 적용할 경우:
package.json에서 적용할 경우:
Troubleshooting
Cannot find module
@
로 시작하는 모듈 경로는 다음과 같은 설정이 필요하다: