QR Send

スマホとPCのChrome間で、URLやテキストをQRコード1回のペアリングで送り合える自作Chrome拡張。アカウント不要・無料。

使ってみる →

Playwright テスト実行オプション(CLI)完全リファレンス【初心者向け・保存版】

Selenium・自動化

はじめに

Playwrightのテストは、npx playwright testというコマンド1つで実行できます。ただ、実際の開発・調査の現場では、これだけで済むことはほとんどありません。「1つのテストだけ動かしたい」「失敗した瞬間の様子を見たい」「CIでは並列に分割して実行したい」といった場面ごとに、コマンドの後ろにさまざまなオプションを付けて実行することになります。

npx playwright test --headed --trace on

このように、npx playwright testの後ろに続くオプションを知っているかどうかで、デバッグや調査にかかる時間が大きく変わります。逆に言えば、オプションを知らないと、本当は一発で解決できることを、手作業で何度もブラウザを開き直したり、コードにログを仕込んだりして時間を溶かしてしまいがちです。

この記事は、Playwrightのplaywright testコマンドで使えるCLIオプションを一望できる保存版リファレンスです。「あのオプション何だっけ」となったときに、このページを開けばすぐ見つかるようにまとめています。実在しないオプションを載せると余計に混乱を招くため、この記事では実際にPlaywrightに存在するオプションだけを扱っています。

姉妹記事として、expectのマッチャーをまとめたPlaywright の expect マッチャー完全リファレンスもあります。「検証の書き方」で迷ったらそちらを、「実行のしかた」で迷ったらこのページを見てもらえれば大丈夫です。

早見表:やりたいこと→オプション

「〜したい」から、使うべきオプションを逆引きできる表です。オプション名をクリックすると、詳しい説明と使用例のある見出しへジャンプします。

やりたいこと オプション
ブラウザの動きを目で見ながら実行したい –headed
好きな場所で一時停止してステップ実行したい –debug
ウォッチしながら対話的にデバッグしたい –ui
失敗時の詳細な実行履歴(トレース)を記録したい –trace
特定のファイル・ディレクトリだけ実行したい ファイル・ディレクトリ指定
ファイルの特定の行のテストだけ実行したい 行番号指定
テスト名(タイトル)で絞り込みたい -g, –grep
特定のテストを除外したい –grep-invert
特定のブラウザ(プロジェクト)だけ実行したい –project
さっき失敗したテストだけ再実行したい –last-failed
gitで変更したファイルのテストだけ実行したい –only-changed
実行せずに一覧だけ見たい –list
並列数を変えたい・直列にしたい –workers
失敗時に自動でリトライしたい –retries
フレーキーテストを疑って何度も流したい –repeat-each
CIで分割並列実行したい –shard
一定数失敗したら打ち切りたい –max-failures, -x
test.onlyの残留をCIで検知したい –forbid-only
フレーキーテストがあれば全体を失敗扱いにしたい –fail-on-flaky-tests
テスト1件ごとの制限時間を変えたい –timeout
テストスイート全体の制限時間を設けたい –global-timeout
結果の表示形式を変えたい –reporter
成果物の出力先を変えたい –output
余計な出力を減らしたい –quiet
スクリーンショットなどの基準を更新したい –update-snapshots, -u
設定ファイルを指定したい –config, -c
HTMLレポートを開きたい show-report
トレースファイルを見たい show-trace
操作を記録してコードを自動生成したい codegen
ブラウザ本体をインストールしたい install

▲ 目次に戻る

デバッグ・可視化

テストがなぜ失敗するのか分からないとき、まず頼りになるのがこのカテゴリのオプションです。

–headed

デフォルトではブラウザは画面に表示されない状態(ヘッドレス)で実行されますが、--headedを付けるとブラウザのウィンドウが実際に開き、動きを目で確認しながら実行できます。

npx playwright test --headed

–debug

Playwright Inspectorという専用のデバッグツールを開き、テストを1ステップずつ実行できるようにします。各操作の前で一時停止し、ページの状態やロケータの一致状況を確認しながら進められます。

npx playwright test tests/login.spec.ts --debug

–ui

UIモードでテストランナーを起動します。テストの一覧をウォッチしながら実行でき、実行後は各ステップの「タイムトラベル」(各操作時点のDOMスナップショットをさかのぼって確認できる機能)でじっくり調査できます。日常的な開発中のデバッグ手段として特におすすめです。

npx playwright test --ui

–trace

テスト実行中の操作・スクリーンショット・ネットワーク通信などをまとめて記録する「トレース」の取得タイミングを指定します。on(常に記録)・off(記録しない)・on-first-retry(最初のリトライ時のみ記録)・retain-on-failure(失敗したテストの分だけ記録を残す)などが指定できます。

# 常にトレースを記録する
npx playwright test --trace on

# CIでは、失敗して最初にリトライしたときだけ記録する(容量を抑えられる)
npx playwright test --trace on-first-retry

記録したトレースは、後述のshow-traceで開いて確認します。

▲ 目次に戻る

実行対象の絞り込み

すべてのテストを毎回流すのではなく、今調べたい範囲だけに絞り込むためのオプションです。

ファイル・ディレクトリ指定

コマンドの後ろにファイルパスやディレクトリパスを指定すると、そのファイル(またはディレクトリ配下のテストファイル)だけを実行します。

npx playwright test tests/login.spec.ts
npx playwright test tests/e2e/

行番号指定

ファイルパスの後ろに:行番号を付けると、その行にあるテスト(test(...)の呼び出し)だけをピンポイントで実行できます。

npx playwright test tests/login.spec.ts:10

-g, –grep

テストのタイトル(test("〜", ...)の文字列部分)を正規表現でフィルタし、一致するテストだけを実行します。

npx playwright test -g "ログイン"
npx playwright test --grep "@smoke"

よくある使い所: テストのタイトルに@smokeのようなタグを仕込んでおき、スモークテストだけを実行したいとき。

–grep-invert

-g/--grepとは逆に、指定したパターンに一致しないテストだけを実行します。

npx playwright test --grep-invert "@slow"

–project

playwright.config.tsで定義した「プロジェクト」(多くの場合Chromium・Firefox・WebKitなどのブラウザ単位)のうち、指定したものだけを実行します。複数指定も可能です。

npx playwright test --project=chromium
npx playwright test --project=chromium --project=webkit

–last-failed

直前の実行で失敗したテストだけを再実行します。修正後にすべてを流し直さず、失敗していた箇所だけを素早く確認したいときに便利です。

npx playwright test --last-failed

–only-changed

gitで変更されたファイルに関連するテストだけを実行します。変更内容から影響範囲を推測して絞り込んでくれるため、開発中に「関係ありそうなテストだけ」を素早く回したいときに使います。

npx playwright test --only-changed

–list

テストを実際には実行せず、実行対象となるテストの一覧だけを表示します。他のフィルタオプション(-gなど)と組み合わせて、「このフィルタでどのテストが対象になるか」を事前に確認したいときに使います。

npx playwright test --grep "ログイン" --list

▲ 目次に戻る

並列・リトライ・安定化

実行速度や、実行結果の安定性(フレーキーテスト対策)に関わるオプションです。

–workers

テストを並列実行するワーカー(プロセス)の数を指定します。数値を大きくすると速くなりますが、マシンのリソースやテスト対象のサーバー負荷と相談する必要があります。--workers=1を指定すると直列(1つずつ順番)実行になり、実行順序に依存する不具合の切り分けに役立ちます。

npx playwright test --workers=4

# 直列実行にして、並列実行が原因かどうかを切り分ける
npx playwright test --workers=1

–retries

テストが失敗したときに、指定した回数だけ自動的に再実行します。ネットワークの一時的な遅延など、環境要因によるまれな失敗(フレーキーテスト)を吸収するために使われます。

npx playwright test --retries=2

補足: リトライはあくまで対症療法です。多用しすぎると、本当のバグを見逃す原因にもなるため注意してください。

–repeat-each

各テストを指定した回数だけ繰り返し実行します。「たまに失敗する」というフレーキーテストの再現性を確かめたいときに使います。

npx playwright test tests/login.spec.ts --repeat-each=10

–shard

テスト全体を指定した数に分割し、そのうちの1つだけを実行します。CIで複数のマシン(ジョブ)に分散して並列実行し、全体の実行時間を短縮するために使います。

# 全体を3分割し、1番目のシャードだけ実行する
npx playwright test --shard=1/3

–max-failures, -x

指定した件数の失敗が発生した時点で、それ以降のテスト実行を打ち切ります。-xは「1件失敗したら即座に打ち切る」の省略形です。

npx playwright test --max-failures=5
npx playwright test -x

よくある使い所: 大きな環境障害が起きているときに、全件失敗するまで待たされずに早く気づきたいとき。

–forbid-only

コード中にtest.only(そのテストだけを実行する指定)が残っていた場合、テストをエラーとして扱います。開発中に一時的に付けたtest.onlyをうっかりコミットし、CIで一部のテストしか実行されなくなる事故を防ぐため、CI用の設定として使われます。

npx playwright test --forbid-only

–fail-on-flaky-tests

リトライの末に最終的には成功した「フレーキーテスト」が1件でもあった場合、コマンド全体の終了コードを失敗扱いにします。「リトライで通ったから良し」とせず、不安定なテストの存在自体をCIで検知したいときに使います。

npx playwright test --fail-on-flaky-tests

▲ 目次に戻る

タイムアウト

処理にかけてよい時間の上限を指定するオプションです。

–timeout

テスト1件あたりの制限時間をミリ秒単位で指定します。この時間を超えるとそのテストはタイムアウトとして失敗になります。

npx playwright test --timeout=60000

–global-timeout

テストスイート全体(すべてのテストの合計)にかけられる制限時間をミリ秒単位で指定します。CIの実行時間そのものに上限を設けたいときに使います。

npx playwright test --global-timeout=600000

▲ 目次に戻る

レポート・出力

実行結果をどう表示するか、どこに出力するかを指定するオプションです。

–reporter

実行結果の表示形式(レポーター)を指定します。list(1件ずつ詳細表示)・line(1行で進捗表示)・dot(ドットで簡易表示)・html(ブラウザで見られるHTMLレポート)・jsonjunit(CIツール連携用)などがあり、カンマ区切りで複数同時に指定することもできます。

npx playwright test --reporter=html
npx playwright test --reporter=list,junit

–output

スクリーンショットやトレース、動画などの成果物(アーティファクト)を保存するディレクトリを指定します。

npx playwright test --output=test-results

–quiet

コンソールへの出力を抑え、必要最小限の情報だけを表示します。CIのログを見やすくしたいときなどに使います。

npx playwright test --quiet

▲ 目次に戻る

スナップショット・設定

スナップショットの更新や、設定ファイルの切り替えに関するオプションです。

–update-snapshots, -u

toHaveScreenshotなどで使うスクリーンショットや、その他のスナップショットの基準ファイルを、現在の実行結果で更新(上書き)します。デザイン変更などで基準画像を意図的に更新したいときに使います。

npx playwright test --update-snapshots
npx playwright test -u

注意: 意図しない見た目の崩れまで「正しい状態」として上書きしてしまわないよう、実行前に差分を目視で確認してから使うのが安全です。

–config, -c

読み込む設定ファイルのパスを明示的に指定します。環境ごとに設定ファイルを分けている場合などに使います。

npx playwright test --config=playwright.staging.config.ts

▲ 目次に戻る

あわせて覚える関連コマンド

playwright test本体のオプションではありませんが、セットで覚えておくと便利なnpx playwrightのサブコマンドを紹介します。

show-report

直前のテスト実行で生成されたHTMLレポートをブラウザで開きます。

npx playwright show-report

show-trace

–traceオプションなどで記録したトレースファイル(.zip)を、トレースビューアで開いて確認します。各操作の前後のスクリーンショット、DOMの状態、ネットワーク通信などを時系列でたどれます。

npx playwright show-trace trace.zip

codegen

指定したURLでブラウザを開き、実際にクリックや入力といった操作をすると、それに対応するPlaywrightのコードを自動生成してくれます。ロケータの書き方に迷ったときの取っかかりとしても便利です。

npx playwright codegen https://example.com

install

テストの実行に必要なブラウザ本体(Chromium・Firefox・WebKitなど)をダウンロード・インストールします。新しい環境でセットアップするときに最初に実行するコマンドです。

npx playwright install

▲ 目次に戻る

CLIとplaywright.config.tsの関係

ここまで紹介してきたオプションの多くは、実はplaywright.config.tsの設定としても同じ内容を書くことができます。たとえば--workers--retries--timeout--reporterなどは、設定ファイル側にデフォルト値として定義しておくのが一般的です。

// playwright.config.ts
import { defineConfig } from "@playwright/test";

export default defineConfig({
  workers: 4,
  retries: 2,
  timeout: 30000,
  reporter: "html",
});

このとき覚えておきたいのは、CLIオプションは設定ファイルの値より優先されるという関係です。つまり、playwright.config.tsworkers: 4と書かれていても、実行時にnpx playwright test --workers=1と指定すれば、その回だけは1(直列)で動きます。

普段の基本設定はplaywright.config.tsにまとめておき、「今回だけ一時的に変えたい」というときにCLIオプションで上書きする、という使い分けが基本になります。

▲ 目次に戻る

初心者向けまとめ:まずこれ

  • 動きを見ながら確認したいときは--headedを付けて実行する
  • テストが落ちたときは、--trace onを付けて再実行するか、--debugでステップ実行して原因を探る
  • 日常的な開発中のデバッグは--uiがもっとも情報量が多く、まず試す価値があります
  • 実行結果を後からじっくり見たいときはshow-reportでHTMLレポートを開く
  • 迷ったら、まず早見表に戻ってきてください

これだけ覚えておけば、「動きを見る → 落ちたら記録を取る・ステップ実行する → レポートで確認する」という一連の調査の流れがひとりで回せるようになります。オプションの詳細な仕様はバージョンによって追加・変更されることがあるため、より正確な情報が必要なときは公式のCLIリファレンスもあわせて確認することをおすすめします。

▲ 目次に戻る

コメント

タイトルとURLをコピーしました