Skip to content

E2E Setup ​

Browser installation ​

If you enabled E2E at scaffold time, the CLI runs pnpm playwright install automatically during project setup. No manual step is required.

To install browsers manually (e.g. after cloning a project that has E2E enabled):

bash
cd my-experiment
pnpm playwright install

This downloads browser binaries for Chromium, Firefox, and WebKit to ~/.cache/ms-playwright. The generated playwright.config.js uses Chromium only (Desktop Chrome device), so you can install just Chromium to save space:

bash
pnpm playwright install chromium

Running tests ​

bash
pnpm test:e2e

Runs all tests in e2e/ against the configured base URL and markets.

Headed mode (for debugging) ​

bash
pnpm playwright test --headed

Opens a real browser window so you can see the test executing. Useful when a test fails and you need to inspect the page state.

Run a single test file ​

bash
pnpm playwright test e2e/smoke.spec.js

playwright.config.js ​

The generated configuration:

js
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
    testDir: './e2e',
    fullyParallel: true,
    forbidOnly: !!process.env.CI,
    retries: process.env.CI ? 2 : 0,
    reporter: 'html',
    use: {
        ...devices['Desktop Chrome'],
        screenshot: 'only-on-failure',
        trace: 'on-first-retry',
    },
});
OptionValueNotes
testDir./e2eAll test files in e2e/
fullyParalleltrueTests run in parallel
forbidOnly!!CIFails the run if .only() is left in any test
retries2 in CI, 0 locallyRetries on CI to handle flakiness
reporterhtmlGenerates playwright-report/index.html
screenshotonly-on-failureScreenshots saved only when a test fails
traceon-first-retryTrace recorded on first retry for debugging

CI usage ​

Set the CI environment variable to enable CI-specific behaviour (retries, forbidOnly):

bash
CI=true pnpm test:e2e

Test reports and screenshots are written to playwright-report/. Archive this directory as a CI artifact for debugging failed runs.

Internal tool — Samsung / Sogody experimentation team