tool
Jest
JavaScript / TypeScript で広く使われるテスティングフレームワーク。ESM 対応や TypeScript の transform 設定、jest.mock の巻き上げで「テストが動かない」に陥りやすい。
問題一覧(5)
Jest で「Cannot use import statement outside a module」が解決できない
Jest は既定でテストを CommonJS として実行するため、変換されていない ESM の import を読むと SyntaxError になる。babel-jest / ts-jest で変換するか、transformIgnorePatterns で ESM 依存を変換対象に含める。
更新: 2026-07-10、タグ: esm、transform、babel-jest
Jest で「ReferenceError: document is not defined」が解決できない
Jest 27 以降は既定の testEnvironment が node で DOM が無い。ブラウザ向けテストは testEnvironment を jsdom にし、Jest 28 以降は jest-environment-jsdom を別途インストールする。
更新: 2026-07-07、タグ: jsdom、testEnvironment、dom
Jest で「Exceeded timeout of 5000 ms for a test」が出てテストが完了できない
Jest の既定タイムアウトは 1 テスト 5 秒で、超えると失敗する。本当に時間が必要ならタイムアウト値を延ばし、多くの場合は resolve されない Promise や done の呼び忘れといった非同期処理の問題を疑う。
更新: 2026-07-27、タグ: timeout、testtimeout、async
Jest で path alias(@/)が解決できず Cannot find module になる
tsconfig.json の paths や bundler の alias は Jest には伝わらない。Jest は独自の解決器を使うため、jest.config の moduleNameMapper に同じ対応を書き写す必要がある。正規表現の後方参照と rootDir トークンで対応付ける。
更新: 2026-08-12、タグ: module-resolution、path-alias、modulenamemapper
Jest で TypeScript が「SyntaxError: Unexpected token」で実行できない
Jest 自体は TypeScript を理解しない。ts-jest プリセットか @babel/preset-typescript で .ts / .tsx を実行時に変換する設定が無いと、型注釈や import の位置で Unexpected token になる。
更新: 2026-07-07、タグ: typescript、ts-jest、transform