Web Test Runner
Test runner for web applications.
Headless browsers with Puppeteer, Playwright, or Selenium.
Reports logs, 404s, and errors from the browser.
Debug opens a real browser window with devtools.
Mock es modules using Import Maps.
Exposes browser properties like viewport size and dark mode.
Runs tests in parallel and isolation.
Interactive watch mode.
Fast development by rerunning only changed tests.
Powered by esbuild and rollup plugins
See our website for full documentation.
Installation
Install the web test runner:
npm i --save-dev @web/test-runner
Basic commands
Do a single test run:
web-test-runner test/**/*.test.js --node-resolve
wtr test/**/*.test.js --node-resolve
Run in watch mode, reloading on file changes:
web-test-runner test/**/*.test.js --node-resolve --watch
wtr test/**/*.test.js --node-resolve --watch
Run with code coverage profiling (this is slower):
web-test-runner test/**/*.test.js --node-resolve --coverage
wtr test/**/*.test.js --node-resolve --coverage
Transform JS to a compatible syntax based on user agent:
web-test-runner test/**/*.test.js --node-resolve --esbuild-target auto
wtr test/**/*.test.js --node-resolve --esbuild-target auto
Guide
Check out this step by step guide to get started.
Example projects
Check out the example projects for a fully integrated setup.
Documentation
See our website for full documentation.