コンテンツにスキップ

Playwright を Next.js でセットアップする方法

Playwright は、Chromium、Firefox、WebKit を単一の API で自動化できるテストフレームワークです。これを使用してエンドツーエンド (E2E) テストを作成できます。このガイドでは、Playwright を Next.js でセットアップし、最初のテストを作成する方法を説明します。

クイックスタート

with-playwright の例 を使用すると、最も早く開始できます。これにより、Playwright が構成された Next.js プロジェクトが作成されます。

ターミナル
npx create-next-app@latest --example with-playwright with-playwright-app

手動セットアップ

Playwright をインストールするには、次のコマンドを実行します

ターミナル
npm init playwright
# or
yarn create playwright
# or
pnpm create playwright

これにより、プロジェクトの Playwright のセットアップと構成に関する一連のプロンプトが表示され、playwright.config.ts ファイルが追加されます。ステップバイステップのガイドについては、Playwright のインストールガイド を参照してください。

最初の Playwright E2E テストを作成する

2 つの新しい Next.js ページを作成する

pages/index.ts
import Link from 'next/link'
 
export default function Home() {
  return (
    <div>
      <h1>Home</h1>
      <Link href="/about">About</Link>
    </div>
  )
}
pages/about.ts
import Link from 'next/link'
 
export default function About() {
  return (
    <div>
      <h1>About</h1>
      <Link href="/">Home</Link>
    </div>
  )
}

次に、ナビゲーションが正しく機能していることを確認するテストを追加します

tests/example.spec.ts
import { test, expect } from '@playwright/test'
 
test('should navigate to the about page', async ({ page }) => {
  // Start from the index page (the baseURL is set via the webServer in the playwright.config.ts)
  await page.goto('https://:3000/')
  // Find an element with the text 'About' and click on it
  await page.click('text=About')
  // The new URL should be "/about" (baseURL is used there)
  await expect(page).toHaveURL('https://:3000/about')
  // The new page should contain an h1 with "About"
  await expect(page.locator('h1')).toContainText('About')
})

参考: playwright.config.ts"baseURL": "https://:3000"構成ファイル を追加すると、page.goto("/") の代わりに page.goto("https://:3000/") を使用できます。

Playwright テストの実行

Playwright は、Next.js サーバーが実行されていることを前提に、Chromium、Firefox、WebKit の 3 つのブラウザを使用してユーザーがアプリケーションを操作することをシミュレートします。アプリケーションがどのように動作するかをより正確に再現するために、本番コードに対してテストを実行することをお勧めします。

npm run buildnpm run start を実行してから、別のターミナル ウィンドウで npx playwright test を実行して Playwright テストを実行します。

参考: または、webServer 機能を使用して、Playwright に開発サーバーを起動させ、完全に利用可能になるまで待機させることができます。

継続的インテグレーション (CI) で Playwright を実行する

Playwright はデフォルトで ヘッドレスモード でテストを実行します。すべての Playwright 依存関係をインストールするには、npx playwright install-deps を実行します。

Playwright と継続的インテグレーションについては、これらのリソースからさらに学習できます