🍕

Next.js + Vitest の環境構築手順

公開日約1年前2025-10-10
更新日9か月前2026-01-23
MarkdownRaw Content

必要なパッケージのインストール

Terminal
pnpm add -D -E vitest @vitest/browser-playwright @vitejs/plugin-react @testing-library/react @testing-library/dom @testing-library/jest-dom @testing-library/user-event vite-tsconfig-paths msw @vitest/coverage-v8 fishery @faker-js/faker

設定ファイルの作成

vitest.config.mts
import { defineConfig, defineProject } from 'vitest/config'
import { playwright } from '@vitest/browser-playwright'
import react from '@vitejs/plugin-react'
import tsconfigPaths from 'vite-tsconfig-paths'

export default defineConfig({
  test: {
    projects: [
      defineProject({
        test: {
          name: 'unit',
          include: ['**/__tests__/**/*.unit.{test,spec}.ts'],
          environment: 'node',
        },
      }),
      defineProject({
        plugins: [tsconfigPaths(), react()],
        test: {
          name: 'browser',
          include: ['**/__tests__/**/*.browser.{test,spec}.ts{,x}'],
          setupFiles: ['./vitest.setup.ts'],
          browser: {
            enabled: true,
            provider: playwright(),
            headless: true,
            instances: [{ browser: 'chromium' }],
          },
        },
      }),
    ],
  },
})
vitest.setup.ts
import '@testing-library/jest-dom/vitest'

package.json の scripts

package.json の scripts を次のように設定することで便利になります。

package.json
{
  "scripts": {
    // ...
    "test": "vitest",
    "test:coverage": "vitest run --coverage",
    "test:run": "vitest run"
    // ...
  },
}

playwright のインストール

Playwright の実行に必要なブラウザ本体と依存ライブラリを、以下のコマンドでインストールします。

Terminal
pnpm dlx playwright install --with-deps

playwright のアンインストールをしたい場合

Terminal
pnpm dlx playwright uninstall --all

参考

How to set up Vitest with Next.js JSDOMを使ったReact Testing Library等のテストが時代遅れかも知れないので調べてみた Why I Won’t Use JSDOM 【Next.js × Vitest】Failed to load PostCSS config : [TypeError] Invalid PostCSS Plugin found at: plugins[0]の解決方法 - Qiita