Playwright Watch
Playwright watch is an app that enables visual watch mode for Playwright. Run and visually debug Playwright tests as soon as you hit save.
Installation
npm i -D @deploysentinel/playwright-watch @deploysentinel/playwright
Note: @deploysentinel/playwright-watch
requires the
@deploysentinel/playwright
reporter to be installed to collect run results and
trace telemetry. All test data is collected locally and never sent out when
using this package.
Usage
npx pw-watch --reporter @deploysentinel/playwright
Additional arguments will be forwarded to playwright test
.
Note: Only the last test run will be shown in the visual debugger
Specifing Custom File Pattern
By default, the command watches all files matching
**/*.(spec|test).(mjs|mts|ts|js)
. You can customize the watched file glob by
passing in any number of globs into --testMatch
. Ex:
--testMatch "**/*.spec.js"
.
Reducing Timeout
When writing tests locally, often you want to fail fast to get results quickly.
You can lower the default test timeout (30s) by setting --timeout
to a lower
value.
Example test timeout to 2 seconds:
npx pw-watch --reporter @deploysentinel/playwright --timeout=2000
This will ensure no test will run longer than 2 seconds. You may need to experiment with an appropriate timeout for your tests. Granular timeout configs (opens in a new tab) can also be set up in Playwright.
Optional: Installing Reporter to Config
To avoid needing to specify --reporter @deploysentinel/playwright
when running
pw-watch
, you can
add the DeploySentinel Playwright reporter to your playwright.config.(js|ts)
file (opens in a new tab).
No API keys are needed when running locally.
Afterwards, you can simply just run npx pw-watch
.
Disabling Cross Browser Test Runs
When in watch mode, typically you only want to run the test against 1
configuration (ex. just Chromium). You can use Playwright's --project
flag to
select only a single project to be run, if your test suite usually runs against
multiple browsers.
npx pw-watch --reporter @deploysentinel/playwright --project=chromium