Karma
Karma is a JavaScript test runner that starts a web server, connects browsers, runs tests, and reports results.
What Karma is
Karma is a JavaScript test runner that starts a web server, connects browsers, runs tests, and reports results. It can watch configured files and rerun tests after changes, which supports repeated local or continuous-integration runs. Plugins connect testing frameworks such as Jasmine, Mocha, and QUnit, as well as preprocessors, reporters, and browser launchers. Documented launchers include Chrome, Firefox, Safari, PhantomJS, JSDOM, Opera, Internet Explorer, SauceLabs, and BrowserStack. A browser on another device on the same network, including a phone or tablet, can be captured by opening the Karma server URL. Karma runs on Node.js and is distributed as an npm package; its installation guide recommends installing it locally in a project. Documentation includes integration guides for Travis CI, Jenkins, and Semaphore CI. The project says Karma was primarily designed for low-level unit testing, and points to Protractor for high-level testing. It is free MIT-licensed software, but deprecated: it is not accepting new features or general bug fixes. Critical security fixes will continue until 12 months after Angular CLI’s Web Test Runner support is marked stable.
Good
- Runs tests in configured browsers
- Can rerun tests when watched files change
- Plugins support Jasmine, Mocha, and QUnit
- Can capture browsers on another device on the same network
- Free under the MIT license
Watch out
- Deprecated and no longer accepts new features
- General bug fixes are not accepted
- Runs on Node.js
- Designed primarily for low-level unit testing
Who it suits
Karma may suit developers who want to run JavaScript tests locally, in multiple browsers, on file changes, or in a CI server. Its stated focus is low-level unit testing.
Verdict
Karma offers browser-based JavaScript test runs with plugin support and file-change reruns. Its deprecated status and lack of general bug fixes are important considerations before adopting it.
Plans and prices
From Karma's own pricing page, checked 29 Sep 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Karma | Free | MIT-licensed open-source software · deprecated; no new features or general bug fixes |
The facts
Each one read from Karma's own pages, with the date it was checked.
What it does
- Automatic reruns
- Karma watches configured files and reruns tests when a file changes.checked 29 Sep 2026
- CI integrations
- The documentation provides integration guides for Travis CI, Jenkins, and Semaphore CI.checked 29 Sep 2026
- How it works
- Karma starts a web server, connects browsers, runs tests in them, and displays their results.checked 29 Sep 2026
- Installation
- Karma runs on Node.js, is distributed as an npm package, and the installation guide recommends installing it locally in the project.checked 29 Sep 2026
- License
- Karma is released under the MIT license.checked 29 Sep 2026
- Maintenance status
- Karma is deprecated and is not accepting new features or general bug fixes; critical security issues will still be triaged and fixed during the stated support period.checked 29 Sep 2026
- Plugin model
- Preprocessors, reporters, browser launchers, and framework adapters are plugins that can be installed from npm or written for Karma.checked 29 Sep 2026
- Purpose
- Karma runs JavaScript tests in multiple real browsers and reports results to developers.checked 29 Sep 2026
- Security support period
- The repository says critical security fixes will continue until 12 months after Angular CLI's Web Test Runner support is marked stable.checked 29 Sep 2026
- Support
- The project directs questions to its mailing list or Gitter and says the issue tracker is for bug reports and feature discussions.checked 29 Sep 2026
- Testing frameworks
- Plugins are available for Jasmine, Mocha, QUnit, and other testing frameworks.checked 29 Sep 2026
- Testing scope
- The FAQ says Karma was primarily designed for low-level unit testing and recommends Protractor for high-level testing.checked 29 Sep 2026
- Who it is for
- The project describes Karma as useful for developers who want to run tests locally, in multiple browsers, on each save, or on a continuous integration server.checked 29 Sep 2026
Where it runs
- Browser launchers
- Documented launchers include Chrome, Firefox, Safari, PhantomJS, JSDOM, Opera, Internet Explorer, SauceLabs, and BrowserStack.checked 29 Sep 2026
- Manual device capture
- A browser on another device, including a phone or tablet on the same network, can be captured by visiting the Karma server URL.checked 29 Sep 2026
The full review of Karma
Overview
Karma is a JavaScript test runner for teams that want to execute unit tests in browsers as code changes. Its browser coverage and plugin model remain useful for established projects, but its deprecated status makes it a difficult choice for new work.
It starts a web server, connects configured browsers, runs tests and reports results. It is primarily intended for low-level unit testing; the project recommends Protractor for high-level testing.
Key features
Browser-based runs
Karma can launch documented environments including Chrome, Firefox, Safari, PhantomJS, JSDOM, Opera and Internet Explorer, as well as SauceLabs and BrowserStack. That breadth can help teams check code across different browser environments, though the browser options depend on the launchers and environment configured for the project. A phone or tablet on the same network can also be captured by opening the Karma server URL in its browser.
Reruns and plugins
File watching reruns tests when configured files change, making Karma suitable for an edit-and-check workflow. Plugins cover preprocessors, reporters, browser launchers and framework adapters; documented framework support includes Jasmine, Mocha and QUnit. The extensibility is useful where a project needs a particular combination, but it also means the project must configure and maintain its chosen components.
Development and CI
Karma runs on Node.js and is distributed as an npm package, with installation guidance recommending a local project install. It supports parallel execution and coverage reporting, and provides CI integration guides for Travis CI, Jenkins and Semaphore CI. Those capabilities suit teams that want browser runs in local development and CI, but they do not offset the maintenance risk of adopting deprecated software.
Pricing
Karma is free: its plan costs nothing and the software is MIT-licensed. There are no paid tiers to trade against the free offering. The material constraint is not a seat or usage cap but project status: Karma accepts no new features or general bug fixes.
Platforms
Karma's listed platforms are Android, iOS, Linux, macOS, self-hosted, web and Windows. Node.js is its supported runtime, so the platform list should not be read as meaning the runner is a standalone mobile app.
Who it's for
Karma is most appropriate for developers maintaining a project already built around it, particularly where multi-browser unit tests, save-triggered reruns or CI integration are part of the workflow. It is a poor default for a new project that needs an actively developed runner, and it is not the project's recommended tool for high-level testing.
Pros and cons
Pros
- Multiple browser environments: documented launchers and manual device capture can broaden checks beyond a single browser.
- Adaptable test setup: plugins support different frameworks, preprocessors, reporters and launchers.
- Free and open source: the MIT license and free plan avoid a software charge.
Cons
- Deprecated: no new features or general bug fixes makes it a risky foundation for new projects.
- Limited intended scope: Karma targets low-level unit testing rather than high-level tests.
- Node.js requirement: projects need that runtime to install and run the npm package.
Alternatives
Choose Web Test Runner if you want a free option whose stated goal is modern web development with browser-focused guides and tools. Vitest is another free option if its Linux, macOS, web and Windows platform coverage fits your setup. Mocha is worth considering if you want a free, open-source JavaScript test framework installed as a development dependency.
Rstest, Japa, Jest, Pure Test and Poku are also alternatives to compare. For a broader shortlist, see JavaScript Testing Frameworks.
Verdict
Karma makes sense for teams that need to keep an existing browser-based unit-testing workflow running: it is free, extensible and supports local reruns and CI. For a new project, choose another runner unless Karma's particular browser workflow is essential; its deprecated status and lack of general bug fixes are the stronger long-term consideration.
Getting started
- Install Node.js.
- Install Karma from npm, preferably locally in the project.
- Add plugins for the testing framework, browser launchers, preprocessors, or reporters you need.
- Configure the browsers and test files for Karma to run.
- For device capture, open the Karma server URL in a browser on the same network.
Limits worth knowing
Karma is deprecated and accepts no new features or general bug fixes. Critical security fixes continue until 12 months after Angular CLI's Web Test Runner support is marked stable.
Questions
Is Karma free?
Yes. Karma is free and released under the MIT license.
What does Karma run on?
Karma runs on Node.js and is distributed as an npm package.
Which testing frameworks can it use?
Plugins are available for Jasmine, Mocha, QUnit, and other testing frameworks.
Can Karma run tests in multiple browsers?
Yes. It connects configured browsers and runs tests in them; documented launchers include Chrome, Firefox, Safari, and others.
Is Karma still maintained?
Karma is deprecated and does not accept new features or general bug fixes. Critical security issues will be triaged and fixed during the stated support period.
What kind of testing is Karma designed for?
The project says Karma was primarily designed for low-level unit testing and recommends Protractor for high-level testing.
Alternatives to Karma
- 1

QUnit
Free planAndroidiOSWebAPI7.4Free plan - 2

Web Test Runner
Free planWebLinuxmacOSSelf-hosted6.9Free plan - 3

Cucumber.js
Free planLinuxmacOSSelf-hostedWindows6.8Free plan - 4

Vitest
Free planWebLinuxmacOSWindows6.6Free plan - 5
Jasmine
Free planWebLinuxmacOSWindows6.5Free plan - 6
Pure Test
Free planWebLinuxmacOSSelf-hosted6.5Free plan
