👋
Use Jest with V8 x ts-jest env
TypeScript(express)にJestを導入したときにハマったので書く。
まずは公式通りに
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