メインコンテンツへスキップ
SDETRole
SDETRole

テスト設計・開発ユーティリティ

テスト用 GitHub Actions ワークフロー生成ツール

Playwright、Cypress、Selenium、pytest 用の CI ワークフローを作成。

すべてブラウザ内で動作 登録不要

Builds a workflow file for .github/workflows/. Review it before committing.

Options

Triggers

Comma-separated. Leave empty for all branches.

Leave empty for no schedule. GitHub may delay scheduled runs at busy times.

Browsers

Installs these browsers and passes --project=<name>; the names must match projects in playwright.config.ts.

Above 1 splits tests across parallel jobs and merges the reports.

Extras

.github/workflows/playwright.yml

Before you commit

Uses actions/checkout@v4, setup-node@v4 / setup-java@v4 / setup-python@v5, cache@v4 and upload-artifact@v4. Check commands such as npm ci or pip install -r requirements.txt match your repository, and add secrets with ${{ secrets.NAME }} rather than hard-coding them.

このツールについて

ほとんどのテストスイートには同じ CI の骨組みが必要です。コードをチェックアウトし、ランタイムをインストールし、依存関係とブラウザをインストールし、テストを実行し、失敗したときにはレポートを残す、というものです。このツールは、Playwright(TypeScript)、Cypress、Java と Maven を使う Selenium、pytest 向けにそのワークフローを、公式アクションの現行メジャーバージョン(checkout@v4、setup-node@v4、setup-java@v4、setup-python@v5、cache@v4、upload-artifact@v4)を使って作成します。Playwright では、--shard=i/n でスイートを並列ジョブに分割し、Playwright のドキュメントにあるパターンに従って blob レポートを 1 つの HTML レポートにマージできます。スケジュール実行には、GitHub Actions の要件どおり UTC の 5 フィールド cron を使います。

使い方

  1. フレームワークとランタイムのバージョンを選び、トリガー(push、pull_request、cron スケジュール、手動の workflow_dispatch)を選びます。
  2. ブラウザと、Playwright の場合はシャード数を選びます。特に理由がなければ、キャッシュとレポートのアップロードはオンのままにします。
  3. YAML をコピーまたはダウンロードしてリポジトリの .github/workflows/ に保存し、npm ci や pip install -r requirements.txt などのコマンドがプロジェクトに合っているか確認します。

テスト用 GitHub Actions ワークフロー生成ツール のよくある質問

スケジュールが想定と違う時刻に実行されるのはなぜですか?

GitHub Actions は cron を UTC で評価するため、ローカルのタイムゾーンから変換してください。また、混雑時にはスケジュール実行の開始が遅れることがあり、パブリックリポジトリではリポジトリの活動が 60 日間ないとスケジュールされたワークフローが自動的に無効になります。

ここでの Playwright のシャーディングはどう動きますか?

マトリクスがシャードごとに 1 つのジョブを起動し、それぞれが blob レポーターで npx playwright test --shard=i/n を実行します。後続のジョブがすべての blob レポートをダウンロードし、npx playwright merge-reports を実行して、1 つの HTML レポートのアーティファクトを作成します。

ブラウザごとに --project フラグがあるのはなぜですか?

Playwright は playwright.config.ts で定義したプロジェクトでブラウザを選択します。生成されたコマンドは選択したブラウザごとに --project=<name> を渡すため、それらのプロジェクト名が設定ファイルに存在している必要があります。すべてのプロジェクトを実行するにはフラグを削除してください。

テストユーザーのパスワードなどの認証情報はどこに置けばよいですか?

リポジトリまたは環境のシークレットとして保存し、env ブロックで ${{ secrets.NAME }} として参照します。ワークフローファイルに直接コミットしないでください。

キーワードを入力すると SDETRole 全体を検索できます。

Pagefind による全文検索 · ブラウザ内で動作します 検索ページを開く →