Web Test Runner
modern-web.dev
What it is
Web Test Runner is a test runner for web applications, installable as an npm development dependency. It runs tests in parallel and isolation, giving each test file its own browser environment. Headless testing is supported through launchers including Puppeteer, Playwright, Selenium, BrowserStack, and WebdriverIO. Playwright can use Chromium, Firefox, and WebKit; BrowserStack runs tests remotely, including against older browser versions. Debug mode opens a browser window with developer tools, and the runner reports browser logs, 404 responses, and errors. Its command line offers interactive watch mode that reruns tests when files change, plus code coverage with configurable thresholds and reports. Default coverage instrumentation uses Chromium. Other features include ES module mocking through import maps and Mocha integration, with guidance for a custom test framework. The project is MIT-licensed, powered by esbuild and Rollup plugins, and directs users to GitHub and Discord for help and discussion. It is free and open source.
Spec sheet
- Purpose
- Web Test Runner is a test runner for web applications.Read 3 Oct 2026 · modern-web.dev
- Integrations
- The docs describe using the Playwright launcher with GitHub Actions via Microsoft's Playwright Action.Read 3 Oct 2026 · modern-web.dev
- Support
- The project links to Discord for community discussion and lists sponsorship and contributions as ways to support it.Read 3 Oct 2026 · github.com
- License
- The project's GitHub page identifies the repository license as MIT.Read 3 Oct 2026 · github.com
- Maker
- Modern Web describes its goal as providing developers with guides and tools for modern web development while working closely with the browser.Read 3 Oct 2026 · modern-web.dev
- Browser coverage
- The Playwright launcher supports bundled Chromium, Firefox, and WebKit browsers.Read 3 Oct 2026 · modern-web.dev
- Browser diagnostics
- It reports browser logs, 404 responses, and errors.Read 3 Oct 2026 · modern-web.dev
- Browser integrations
- Playwright can run tests on Chromium, Firefox, and WebKit; BrowserStack and Sauce Labs launchers are also documented.Read 2 Oct 2026 · modern-web.dev
- Browser launchers
- Documented launchers include Puppeteer, Playwright, Selenium, BrowserStack, and WebdriverIO.Read 3 Oct 2026 · modern-web.dev
- Browser testing
- It can run tests in headless browsers using Puppeteer, Playwright, Selenium, or WebdriverIO.Read 2 Oct 2026 · modern-web.dev
- Build tooling
- The runner is powered by esbuild and Rollup plugins.Read 2 Oct 2026 · modern-web.dev
- Code coverage
- Coverage supports configurable thresholds and reports, while the default coverage instrumentation uses Chromium.Read 3 Oct 2026 · modern-web.dev
- Debugging
- Debug mode opens a real browser window with developer tools.Read 3 Oct 2026 · modern-web.dev
- Execution
- Tests run in parallel and isolation, and watch mode reruns tests when files change.Read 3 Oct 2026 · modern-web.dev
- Installation
- The official installation instructions use npm to add @web/test-runner as a development dependency.Read 3 Oct 2026 · modern-web.dev
- Maker focus
- Modern Web says its goal is to provide developers with guides and tools for building for the modern web while working closely with browser capabilities.Read 2 Oct 2026 · modern-web.dev
- Module mocking
- The runner can mock ES modules using import maps.Read 3 Oct 2026 · modern-web.dev
- Parallel and isolated tests
- Tests run in parallel and in isolation, with each test file in its own browser environment.Read 2 Oct 2026 · modern-web.dev
- Project status
- Modern Web says its code is open source and publicly available on GitHub, with packages published under the @web npm namespace.Read 2 Oct 2026 · modern-web.dev
- Remote testing
- The BrowserStack launcher runs tests remotely, and the docs say it can be useful for older browser versions.Read 3 Oct 2026 · modern-web.dev
- Support and contributions
- The site directs users to GitHub for help and feedback and invites contributions to its documentation.Read 2 Oct 2026 · modern-web.dev
- Test framework
- The documentation includes Mocha as a test framework and allows users to write their own framework.Read 3 Oct 2026 · modern-web.dev
- Watch mode and coverage
- The command line supports interactive watch mode and code coverage profiling.Read 2 Oct 2026 · modern-web.dev
Plans and prices
Strong points and limits
Strong points
- Runs test files in parallel and isolation.
- Playwright supports Chromium, Firefox, and WebKit.
- Watch mode reruns tests after file changes.
- Coverage offers configurable thresholds and reports.
- MIT-licensed and free to install.
Limits
- Default coverage instrumentation uses Chromium.
- Installation is as an npm development dependency.
- BrowserStack remote tests use a documented launcher.
Who it suits
It suits developers testing web applications across browsers or integrating tests into command-line workflows. Teams needing remote browser runs can use the documented BrowserStack launcher.
Web Test Runner in depth
Read the full write-up
Web Test Runner is a browser-based test runner for web applications, best suited to developers who need to check behavior across real browser engines. Its free, open-source model is compelling; its main caveat is that coverage instrumentation defaults to Chromium.
Overview
Tests run in parallel, with each file receiving its own browser environment. That helps isolate test files while making browser-focused suites a practical fit for projects where execution context matters. Watch mode reruns tests when files change, reducing the friction of iterating on a suite.
Install it as an npm development dependency with @web/test-runner. Modern Web publishes packages under the @web namespace and directs users to GitHub for help and feedback. The project is MIT-licensed, and its maintainers invite contributions to the documentation.
Key features
Browser execution and diagnostics
Documented launchers include Puppeteer, Playwright, Selenium, BrowserStack, and WebdriverIO. Playwright supports Chromium, Firefox, and WebKit, and BrowserStack enables remote runs, including against older browser versions. This breadth helps teams choose an execution environment suited to their browser needs, though the launcher choice is part of the project setup.
Debug mode opens a visible browser window with developer tools. The runner also reports browser logs, 404 responses, and errors, making it better suited to investigating failures tied to browser behavior than a runner that only returns a pass-or-fail result.
Coverage, mocking, and frameworks
The command line supports interactive watch mode and code coverage profiling. Coverage reports and configurable thresholds give teams a way to track coverage against project expectations, but default instrumentation uses Chromium, which matters when other browser engines are the target. ES modules can be mocked using import maps.
The documentation covers Mocha integration and explains how to write a custom test framework. The runner is powered by esbuild and Rollup plugins, and Playwright can be integrated with GitHub Actions through Microsoft's Playwright Action.
Pricing
The Open source plan costs free. It is an MIT-licensed project installed as an npm development dependency, with no paid tier or usage caps stated. That makes it a straightforward fit for individual developers and teams comfortable maintaining their own test setup; there is no higher-priced plan described for readers seeking a different support or service arrangement.
Platforms
Web Test Runner supports Linux, macOS, Windows, web, and self-hosted environments. Its documented Playwright launcher covers Chromium, Firefox, and WebKit. BrowserStack's remote launcher is useful when testing older browser versions, while the Chromium default for coverage instrumentation is a limitation for teams expecting coverage runs across engines.
Who it's for
Choose Web Test Runner if browser execution, isolated parallel test files, and actionable browser diagnostics matter to your web application workflow. It is less suited to teams that want coverage instrumentation to default across multiple browser engines or prefer a hosted, managed test service rather than an npm development dependency.
Pros and cons
Pros
Broad launcher options: documented integrations include local browser launchers and remote BrowserStack runs, including for older browser versions.
Isolated parallel execution: each test file has its own browser environment, and files can run in parallel.
Useful debugging signals: visible-browser debug mode is paired with reports of logs, 404s, and errors.
Free and permissively licensed: the MIT-licensed project is available at no charge.
Cons
Coverage defaults to Chromium: teams targeting Firefox or WebKit need to account for that instrumentation constraint.
Launcher choice requires setup: the range of browser and remote launchers means teams must select and configure the fit for their project.
Alternatives
JavaScript Testing Frameworks is a useful broader starting point for comparing options. Choose QUnit for an open-source JavaScript testing framework distributed via CDN, npm, and Yarn. Karma is another free, MIT-licensed option, but it is deprecated and receives no new features or general bug fixes. Consider Intern as another free testing option from SitePen and the OpenJS Foundation. Vitest is a free, open-source alternative if you want a different JavaScript testing tool. Cucumber.js is available as an npm development dependency. Pure Test is a free Apache-2.0 open-source option. Testem is a free, MIT-licensed JavaScript test runner. QUnitX is another project by its repository owner.
Verdict
Web Test Runner is a strong choice for developers who want a free, browser-centered test runner with parallel isolation, watch mode, and diagnostic detail. Its mix of launcher options is a persuasive reason to choose it; look elsewhere if cross-engine coverage instrumentation is essential or you want a managed testing service.
Verdict
Web Test Runner combines browser-based testing with watch mode, diagnostics, and coverage. Its documented options include several browser launchers, though default coverage instrumentation uses Chromium.
Where Specifiction places it
- JavaScript Testing Frameworks#4 of 238.2