👋

Use Jest with V8 x ts-jest env

2022/03/11に公開

TypeScript(express)にJestを導入したときにハマったので書く。

まずは公式通りに

https://jestjs.io/ja/docs/getting-started

yarn add --dev jest
yarn add --dev @types/jest # 不要かも
// package.json
{
  "scripts": {
    "test": "jest"
  }
}
jest --init

Coverage Provider で v8 を選択。もう一方のBableというのはよく聞くがJS->ECMA Script 2015 とかに変換するやつっぽいが、ここでの Coverage というのは Chrome Dev Tools の中にある Coverage(直訳で範囲。Dev Tools では差分が出てる範囲が赤と緑で表示されたりする)と同じような意味らしい。

選択内容によってはjest.config.jsが出来るかもしれないが、当方プロジェクトが**.jsをgitignoreしてたこともあり .ts に拡張子を変えた。

独自の追記箇所

で、ts-jestを使うために以下を追記する。

// jest.config.ts
export default {
  coverageProvider: 'v8',
  preset: 'ts-jest', // 追記
  testEnvironment: 'node', // 追記
}

参考:https://qiita.com/mktu/items/d36416baba155dfecc00

遭遇したエラー

yarn test で以下のエラーが出る場合は、jestで使うコンパイラがTypeScriptに対応していないっぽい(つまりJavaScriptのみ対応のコンパイラを使っているみたい。

Unknown compiler option '0'.
Unknown compiler option '1'.

Discussion