Jest 設定ジェネレーター
スタックを選ぶだけ、TypeScript、React、Node バックエンド、Svelte、で、ジェネレーターが適切なトランスフォーマー、モジュールマッパー、テスト環境、カバレッジのしきい値を備えた jest.config.js を出力します。みんなが忘れがちなオプションもすべて含みます:CSS や画像用の moduleNameMapper、setupFilesAfterEach、node_modules や dist を除外する testPathIgnorePatterns。
Jest 設定の作り方
-
1
スタックを選ぶ
TypeScript、React、Vue、Svelte、純粋な Node、またはそれらの組み合わせ。いずれも適切なトランスフォーマーを事前に設定します。
-
2
テスト環境を選ぶ
ブラウザコードには jsdom、バックエンドには node、あるいはカスタム環境。
-
3
機能を切り替える
カバレッジのしきい値、スナップショットテスト、モックパス、カスタムセットアップファイル、変換の除外パターン。
-
4
設定をダウンロードする
出力はコメント付きの `jest.config.js` または `jest.config.ts` で、`package.json` に追加すべき npm スクリプトも付いてきます。
出力例:React + TypeScript プロジェクト
module.exports = {
preset: "ts-jest",
testEnvironment: "jsdom",
setupFilesAfterEach: ["<rootDir>/jest.setup.ts"],
moduleNameMapper: {
"\\.(css|less|scss|sass)$": "identity-obj-proxy",
"\\.(jpg|jpeg|png|gif|svg)$": "<rootDir>/__mocks__/fileMock.js",
"^@/(.*)$": "<rootDir>/src/$1"
},
testPathIgnorePatterns: ["/node_modules/", "/dist/", "/build/"],
transform: {
"^.+\\.tsx?$": ["ts-jest", { tsconfig: "tsconfig.test.json" }]
},
collectCoverageFrom: [
"src/**/*.{ts,tsx}",
"!src/**/*.d.ts",
"!src/**/*.stories.*"
],
coverageThreshold: {
global: { branches: 80, functions: 80, lines: 85, statements: 85 }
}
};
選び方ガイド:どの環境にすべきか?
| コードの実行環境 | 使用するもの |
|---|---|
| ブラウザ(DOM、window) | jsdom(高速化には @happy-dom/jest-environment) |
| Node サーバー | node |
| Service Worker | カスタム環境(node ベース) |
| React Native | react-native プリセット |
トランスフォーマー早見表
| ソースの種類 | トランスフォーマー |
|---|---|
| TypeScript | ts-jest または @swc/jest |
| Babel でコンパイルした JSX | babel-jest(デフォルト) |
| Vue SFC | @vue/vue3-jest + babel-jest |
| Svelte | svelte-jester |
| 静的画像 | moduleNameMapper での手動モック |
カバレッジのしきい値:どの数値にすべきか?
- クリティカルパス/ライブラリ:行 90% 以上、分岐 85% 以上。
- 機能チーム:行 80%、分岐 70%。
- 頻繁に変わる UI:行 60〜70%。ビジネスロジックはより高く、レイアウトはより低く狙う。
- プロトタイプ:しきい値は完全に無効化し、カバレッジはゲートではなく数値として追跡する。
よくある間違い
- 純粋な Node コードに
jsdomを使う。 テストが遅くなるだけで得るものはありません。nodeに切り替えましょう。 - ESM パッケージに
transformIgnorePatternsを設定し忘れる。 最近のパッケージは ESM のみで配布されるため、Jest に変換するよう指示する必要があります。 - マッパーなしで画像や CSS をモックする。 テストで
.pngをインポートすると、モックモジュールがない Jest は動かなくなります。 clearMocksを false にする。 モックがテスト間で漏れ、失敗が非決定的になります。デフォルトで有効にしましょう。
よくある質問
SWC(@swc/jest)は Jest 内での完全な型チェックをスキップするため、ts-jest より 10〜20 倍高速です。型チェックは CI で tsc --noEmit として別途実行しましょう。型エラーでテストを失敗させたいときは ts-jest を、速度を求めるなら SWC を使ってください。
happy-dom は jsdom より約 2〜3 倍高速で、DOM API の大部分を実装しています。一部のエッジケースには対応していないため、「not implemented」エラーが出たら jsdom に切り替えてください。
はい、コンポーネントが .css や .scss ファイルを直接インポートしている場合は必要です。(CSS モジュール用の)identity-obj-proxy か、小さな空のスタブにマッピングしてください。これがないと、テストはインポート時にエラーになります。
はい。TypeScript の出力オプションを選ぶと、ジェネレーターは jest.config.ts を生成します。Jest 27 以降は、ts-node がインストールされていれば .ts 形式の設定を自動的に読み込みます。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
EditorConfig ジェネレーター
インデントのスタイルとサイズ、改行コード、文字コード、空白ルールを指定して .editorconfig ファイルを生成し、IDE やエディタをまたいで書式を統一できます。
メールアドレス検証ツール
メールアドレスを検証します。RFC 5322構文チェック、MXレコードのライブ確認に加え、ローカル部、ドメイン、長さの詳細を表示します。メールは送信されません。
HTML フォーマッター
ブラウザ内で HTML を 2 または 4 スペースで整形します。HTML はアップロードも検証もされません。
このツールは他の言語でも利用できます
- Trình tạo cấu hình Jest [VI]
- Jest Konfigurationsgenerator [DE]
- Gerador de Configuração Jest [PT]
- Jest 설정 생성기 [KO]
- เครื่องมือสร้างไฟล์ตั้งค่า Jest [TH]
- مولّد إعداد Jest [AR]
- Jest-konfigurationsgenerator [SV]
- Jest-configuratiegenerator [NL]
- Générateur de configuration Jest [FR]
- Generator konfiguracji Jest [PL]
- Generator Konfigurasi Jest [ID]
- Generador de Configuración de Jest [ES]
- Jest Config Generator [EN]
- Generatore di Configurazione Jest [IT]
- Генератор конфигурации Jest [RU]
- Jest Yapılandırma Üreticisi [TR]
- Jest 配置生成器 [ZH]