フロントエンド開発といえば。
react アプリの初期化( pnpm create vite@latest または npm init vite@latest <アプリ名> )

playwright の parallel 実行について整理する。

Playwrightの並列実行には以下の4つのレベルがあります。 1


並列実行の種類

1. ファイル間の並列実行(デフォルト)

デフォルトの動作: 異なるテストファイルが異なるワーカープロセスで並列実行されます。

  • 単一ファイル内のテストは順次実行されます
  • 複数のファイルが同時に実行されます

2. プロジェクト間の並列実行

複数プロジェクトの並列実行: 異なるプロジェクト(ブラウザ設定)が並列実行されます。

ユーザーの設定例では、5つのプロジェクト(Desktop Chrome, Desktop Safari, Desktop Edge, Mobile Chrome Pixel5, Mobile Safari iPhone14)が定義されているため、これらは並列実行されます。

3. ファイル内のテスト関数の並列実行

単一ファイル内の並列実行: test.describe.configure({ mode: 'parallel' }) または fullyParallel: true で有効化できます。

test.describe.configure({ mode: 'parallel' });

test('test1', async ({ page }) => { /* ... */ });
test('test2', async ({ page }) => { /* ... */ });
test('test3', async ({ page }) => { /* ... */ });

この場合、各テスト関数が別々のワーカープロセスで実行されます。

4. fullyParallelモード

プロジェクト全体の完全並列化: プロジェクトレベルで fullyParallel: true を設定すると、そのプロジェクト内のすべてのテストが並列実行されます。

projects: [
  {
    name: 'chromium',
    fullyParallel: true,  // すべてのテストを並列実行
  }
]

並列実行の階層構造

これらの並列実行は組み合わせて使用できます:

シリアルモード(並列実行の無効化)

シリアルモード: test.describe.configure({ mode: 'serial' }) でテストを順次実行できます。

test.describe.configure({ mode: 'serial' });

test('runs first', async ({ page }) => { /* ... */ });
test('runs second', async ({ page }) => { /* ... */ });

シリアルモードでは、最初のテストが失敗すると後続のテストはスキップされます。

メモ

並列テストは別々のワーカープロセスで実行されるため、状態やグローバル変数を共有できません。

プロジェクトごとの workers 設定(v1.52以降)を使用すると、プロジェクト間の並列実行を制御できます。

添付ファイル1
添付ファイル2
添付ファイル3
添付ファイル4
No.2754
06/30 17:54

edit

添付ファイル