Next.jsでのPlaywrightの設定
Playwrightは、単一のAPIでChromium、Firefox、WebKitを自動化できるテストフレームワークです。これを用いて、**エンドツーエンド(E2E)**テストを作成できます。このガイドでは、Next.jsでPlaywrightを設定し、最初のテストを作成する方法を示します。
クイックスタート
最も迅速に開始するには、with-playwrightの例を使用して`create-next-app`を使用します。これにより、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.config.ts`ファイルの追加など、プロジェクトのPlaywrightの設定と構成を行う一連のプロンプトが表示されます。ステップバイステップガイドについては、Playwrightインストールガイドを参照してください。
最初のPlaywright E2Eテストの作成
2つの新しいNext.jsページを作成します。
import Link from 'next/link'
export default function Page() {
return (
<div>
<h1>Home</h1>
<Link href="/about">About</Link>
</div>
)
}
import Link from 'next/link'
export default function Page() {
return (
<div>
<h1>About</h1>
<Link href="/">Home</Link>
</div>
)
}
次に、ナビゲーションが正しく機能していることを検証するテストを追加します。
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("https://#:3000/")`の代わりに`page.goto("/")`を使用できます。
Playwrightテストの実行
Playwrightは、Chromium、Firefox、WebKitの3つのブラウザを使用して、ユーザーがアプリケーションを操作する様子をシミュレートします。そのためには、Next.jsサーバーが実行されている必要があります。アプリケーションの動作をより正確に反映させるために、本番環境コードに対してテストを実行することをお勧めします。
npm run build
とnpm run start
を実行した後、別のターミナルウィンドウでnpx playwright test
を実行して、Playwrightテストを実行します。
覚えておくと良い点: 代わりに、
webServer
機能を使用して、Playwrightが開発サーバーを起動し、完全に利用可能になるまで待機させることができます。
継続的インテグレーション(CI)でのPlaywrightの実行
Playwrightはデフォルトで、ヘッドレスモードでテストを実行します。すべてのPlaywright依存関係をインストールするには、npx playwright install-deps
を実行します。
Playwrightと継続的インテグレーションに関する詳細は、以下のリソースをご覧ください。
役に立ちましたか?