テスト
テストは、動作するAstroコードを書き、メンテナンスするために役立ちます。Astroは、Jest、Mocha、Jasmine、Cypress、Playwrightなど、ユニットテスト、コンポーネントテスト、エンドツーエンド(E2E)テスト用の人気ツールを多数サポートしています。UIフレームワークのコンポーネントをテストするために、React Testing Libraryなど特定フレームワーク向けのテストライブラリをインストールすることもできます。
テストフレームワークにより、コードが特定の状況でどのように動作するべきかについてのアサーションまたは期待値を記述し、これらを現在のコードの実際の動作と比較できます。
Vitest
esbuildによるESM、TypeScript、JSXサポートを備えた、Viteネイティブのユニットテストフレームワークです。
AstroのgetViteConfig()
ヘルパーをvitest.config.ts
設定ファイルで使用すると、Astroプロジェクトの設定ファイルによりVitestを設定できます。
GitHubのAstro + Vitestスターターテンプレートを参照してください。
Cypress
Cypressは、モダンなウェブのために作成されたフロントエンドテストツールです。Cypressにより、AstroサイトのE2Eテストを記述できます。
インストール
お好みのパッケージマネージャーを使用してCypressをインストールできます。
これにより、プロジェクトの開発用依存関係としてCypressがローカルにインストールされます。
設定
プロジェクトのルートに、以下の内容のcypress.config.js
ファイルを作成します。
最初のCypressのテストを作成する
-
テストするページを選択します。ここでは以下の
index.astro
ページを例としてテストします。 -
cypress/e2e
フォルダにindex.cy.js
ファイルを作成します。以下のテストをファイルで使用し、ページのタイトルとヘッダーが正しいことを確認します。"baseUrl": "http://localhost:4321"
をcypress.config.js
の設定ファイルに定義してcy.visit("/")
を使用すると、cy.visit("http://localhost:4321/")
よりも楽にURLを扱うことができます。
Cypressのテストを実行する
コマンドラインやCypressアプリケーションを通じてCypressを実行できます。アプリケーションは、テストの実行とデバッグのためのビジュアルインターフェースを提供します。
まず、動作中のサイトにCypressがアクセスできるように、開発用サーバーを起動します。
コマンドラインから上の例のテストを実行するには、次のコマンドを実行します。
または、次のコマンドを実行してCypressアプリケーションによりテストを実行します。
Cypressアプリケーションが起動したら、E2E Testingを選択し、テストを実行するブラウザを選択します。
テストの実行が完了すると、緑色のチェックマークが表示され、テストがパスしたことを確認できます。
テストが本当に動作しているかを確認するために、index.astro
ファイルの以下の行を変更します。
そしてテストを再実行します。テストが失敗したことを示す赤い「x」が出力されるはずです。
次のステップ
Cypressについての詳細は、以下のリンクを参照してください。
Playwright
Playwrightは、モダンなウェブアプリケーションのためのE2Eテストフレームワークです。Playwright APIをJavaScriptやTypeScriptで使用し、Chromium、WebKit、FirefoxなどのすべてのモダンなレンダリングエンジンでAstroコードをテストできます。
インストール
VS Code拡張機能を使用してテストを実行できます。
または、お好みのパッケージマネージャーを使用してAstroプロジェクトにPlaywrightをインストールできます。CLIの各ステップに従って、JavaScriptかTypeScriptを選択し、テストフォルダを命名し、オプションのGitHub Actionsワークフローを追加してください。
初めてのPlaywrightのテストを作成する
-
テストするページを選択します。ここでは以下の
index.astro
ページを例としてテストします。 -
新しいフォルダを作成し、
src/test
に以下のテストファイルを追加します。以下のテストをファイルに貼り付けて、ページのメタ情報が正しいことを確認します。ページの<title>
の値を、テストするページと一致するように更新してください。設定ファイル
playwright.config.ts
で"baseURL": "http://localhost:4321"
と設定すると、page.goto("http://localhost:4321/")
の代わりに、より便利なURLとしてpage.goto("/")
を使用できます。
Playwrightのテストを実行する
ひとつまたは複数のテストを、複数のブラウザで実行可能です。デフォルトでは、テスト結果はターミナルに表示されます。必要に応じて、HTML Test Reporterを開いて完全なレポートを表示したり、テスト結果をフィルタリングできます。
-
上の例のテストをコマンドラインから実行するには、
test
コマンドを使用します。単一のテストのみを実行する場合は、ファイル名をコマンドに含めます。 -
HTML Test Reportの全体を確認するには、次のコマンドを使用して開きます。
実際にデプロイされたサイトにより近付けるため、本番環境のコードをテストしましょう。
応用:テスト中に開発用Webサーバーを起動する
Playwrightの設定ファイルでwebServer
オプションを使用すると、テストスクリプトの実行時に、Playwrightに開発用Webサーバーを起動させることもできます。
以下はnpmを使用する場合の設定とコマンドの例です。
-
プロジェクトのルートにある
package.json
ファイルに、"test:e2e": "playwright test"
のようにテストスクリプトを追加します。 -
playwright.config.ts
にwebServer
オブジェクトを追加し、コマンドの値をnpm run preview
に設定します。 -
npm run build
を実行した上で、npm run test:e2e
によりPlaywrightのテストを実行します。
Playwrightについての詳細は、以下のリンクを参照してください。
Learn