테스트를 가속화하기 위해 NestJS에서 swc/Jest 가져오기

8526 단어 JestNestJSswctech

swc 사용


이쪽의 스크랩을 참고했습니다.
https://zenn.dev/odan/scraps/ab5d046019d760
@swc/core 및 @swc/jest를 설치합니다..swcrc 창고 경로에 파일을 만들고 다음 내용을 기록합니다.
.swcrc
{
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": false,
      "decorators": true,
      "dynamicImport": false
    },
    // ターゲットは好きなやつを。ただドキュメントには
    // Disable es3 / es5 / es2015 transforms と書いてあるので
    // es2015以下は利用できない???
    "target": "es2020",
    "keepClassNames": true,
    "transform": {
      "legacyDecorator": true,
      "decoratorMetadata": true
    },
    // パスエイリアスを利用しているなら以下2項目を編集する。利用してなければ削除。
    // "baseUrl": "./",
    // "paths": {
    //   "@/*": ["./src/*"] 
    // }
  },
  "module": {
    "type": "commonjs",
    "noInterop": false
  },
  "sourceMaps": true,
}
다시 쓰다jest.config.js.
jest.config.js
const config = {
  moduleFileExtensions: ['js', 'json', 'ts'],
  rootDir: './',
  modulePaths: ['<rootDir>'],
  testRegex: (/__tests__/.*|(\\.|/)(test|spec))\\.[jt]sx?$,
  // グローバルセットアップとティアダウンがあれば以下を編集する。
  // globalTeardown: '<rootDir>/src/share/teardownJest.ts',
  // globalSetup: '<rootDir>/src/share/setupJest.ts',
  transform: {
    '^.+\\.(t|j)s$': ['@swc/jest'],
    // デフォルトだとts-jest使っている。
    // '^.+\\.(t|j)s$': 'ts-jest',
  },
  collectCoverageFrom: ['src/**/*.(t|j)s', '!src/**/*.d.ts'],
  coverageDirectory: './coverage',
  testEnvironment: 'node',
  // path alias の設定。tsconfigに設定してあるがjest runner上ではそちらは有効にならない。もしパスエイリアスを利用しているならここにも書く。
  // moduleNameMapper: {
  //  '^@/(.*)$': '<rootDir>/src/$1',
  //},
};

module.exports = config;
주의점
  • parser의 내용은 TypeScript인지 JavaScript인지, NodeJS인지 React인지에 따라 크게 달라졌으니 주의하세요.
  • 경로 별명을 사용하는 경우 baseUrlpaths를 기입한다.만약 사용하지 않았다면 이것은 쓰지 않아도 된다.

  • 쓰지 않으면 제스트의 덮어쓰기가 움직이지 않습니다.
  • 상황에 따라 target을 바꿉니다.
  • .swcrc는 자동으로 읽을 수 있습니다.
  • 좋은 웹페이지 즐겨찾기