Karma

iPhone + Android

  • Recognised40% of the score20
  • Phone app26% of the score100
  • Documented20% of the score87
  • Free plan14% of the score100
Free plan
Yes
Runs on
Android, iPhone, Linux, Mac, self-hosted, Web, Windows

Summary

Karma is a JavaScript test runner that launches a web server, connects browsers, runs tests, and reports results. It can watch configured files and rerun tests when they change, supporting local development or continuous integration. Plugins connect frameworks such as Jasmine, Mocha, and QUnit, along with 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 visiting the Karma server URL. The project runs on Node.js and is distributed as an npm package; its installation guide recommends installing it locally in a project. Documentation includes guides for Travis CI, Jenkins, and Semaphore CI. Karma was primarily designed for low-level unit testing, while the project recommends Protractor for high-level testing. It is free MIT-licensed software, but deprecated and no longer accepting new features or general bug fixes. Critical security fixes continue during the stated support period.

Who it is for

Karma may suit developers who want browser-based tests to run locally, on file changes, across browsers, or in continuous integration. Its stated testing scope is low-level unit testing.

What is good

  • Runs tests in multiple configured browsers.
  • Watches files and reruns tests after changes.
  • Plugins support Jasmine, Mocha, and QUnit.
  • Includes CI guides for Travis CI, Jenkins, and Semaphore CI.

What to know first

  • Deprecated; no new features or general bug fixes.
  • Primarily designed for low-level unit testing.
  • Runs on Node.js.

Samsung Mobile US Press review

Karma: the full review

Karma offers browser-based JavaScript test runs with plugin support and file watching. Its deprecated status and lack of general fixes are important considerations for teams choosing a test runner.

Overview

Karma is a JavaScript test runner for developers who need unit tests to run in browsers as they work or in continuous integration. Its browser coverage and configurable plugins suit teams maintaining an existing Karma setup; for a new project, its deprecated status is a substantial reason to choose another runner.

It starts a web server, connects configured browsers, executes tests, and reports results. File watching can rerun tests after changes, supporting a quick edit-and-check cycle. Karma is primarily designed for low-level unit testing, not high-level end-to-end testing; its project recommends Protractor for the latter.

Key features

Browser runs and device capture

Documented launchers cover Chrome, Firefox, Safari, PhantomJS, JSDOM, Opera, Internet Explorer, SauceLabs, and BrowserStack. This gives teams options for exercising tests across browser environments, though the actual set depends on which launchers and environments a project configures. A browser on another device, such as a phone or tablet on the same network, can also connect by visiting the Karma server URL.

Plugins and workflow

Plugins provide preprocessors, reporters, browser launchers, and framework adapters. Jasmine, Mocha, QUnit, and other frameworks can be integrated, letting a project assemble a test setup around its needs. That flexibility brings a configuration and maintenance burden, especially when a project relies on several plugins. Karma runs on Node.js, is distributed through npm, and its installation guide recommends adding it locally to the project.

CI guides cover Travis CI, Jenkins, and Semaphore CI, so Karma can be incorporated into those continuous-integration workflows. The project also supports component testing, coverage reporting, and parallel execution.

Pricing

Karma is free: the plan costs 0.00 USD per free and the software is MIT-licensed open source. There are no paid plan tiers to compare. The important trade-off is not a usage cap but project health: Karma is deprecated and accepts neither new features nor general bug fixes. Critical security issues will still be triaged and fixed until 12 months after Angular CLI's Web Test Runner support is marked stable.

Platforms

Karma runs on Node.js and is distributed as an npm package. Its listed platforms are Android, iOS, Linux, macOS, self-hosted, web, and Windows; the project also describes capturing a browser on another device over the same network. Browser execution depends on the launchers and environments configured for the project.

Who it's for

Karma makes most sense for developers already invested in its plugin and browser-launcher setup who want local reruns, multiple browser targets, or CI execution for low-level tests. Its free, MIT-licensed distribution suits projects that want open-source tooling. It is a weaker fit for new projects that need an actively maintained runner, and it is not the project's recommended choice for high-level testing.

Questions can go to the project's mailing list or Gitter; its issue tracker is intended for bug reports and feature discussions.

Pros and cons

  • Pros: Browser launchers and manual device capture give teams several ways to run tests beyond a single browser environment.
  • Pros: File watching, framework adapters, coverage reporting, and parallel execution support a flexible local and CI testing workflow.
  • Pros: The MIT-licensed software is free, with no paid tier required for use.
  • Cons: Deprecated status means no new features or general bug fixes, a material concern for teams starting a long-lived project.
  • Cons: Its low-level unit-testing focus makes it unsuitable as the project's recommended option for high-level testing.
  • Cons: The plugin-based approach requires teams to select and maintain the components and browser environments they need.

Alternatives

For a maintained direction focused on modern web development and browser work, consider Web Test Runner; its maker describes working closely with the browser and provides guides and tools for modern web development. For another free Node.js-oriented option that also supports Bun and Deno, Poku is open source under the MIT License.

Rstest is a free, MIT-licensed JavaScript/TypeScript testing framework. Vitest is free and open source, with no plan limits stated. Jest is free, with no paid plans or usage limits stated on its official pages. Mocha is a free, open-source JavaScript test framework installed as a development dependency. Other free options include Japa and Pure Test. Browse JavaScript Testing Frameworks for more options.

Verdict

Keep Karma in consideration when an established project depends on its browser-based runs, plugins, and file watching: it remains free and can serve local and CI unit-testing workflows. For a new project, choose an alternative if ongoing feature development and general bug fixes matter; Karma's deprecated status is the clearest reason to look elsewhere.

Karma plans and pricing

All plans
Karma Free MIT-licensed open-source software · deprecated; no new features or general bug fixes github.com · 29 Sept 2026

Compared on JavaScript testing frameworks

Free plan
Yeskarma-runner.github.io
Component testing
Yeskarma-runner.github.io
Coverage reporting
Yeskarma-runner.github.io
Supported runtimes
Node.jskarma-runner.github.io
Parallel execution
Yeskarma-runner.github.io

Facts

Purpose
Karma runs JavaScript tests in multiple real browsers and reports results to developers.github.com · 29 Sept 2026
How it works
Karma starts a web server, connects browsers, runs tests in them, and displays their results.karma-runner.github.io · 29 Sept 2026
Automatic reruns
Karma watches configured files and reruns tests when a file changes.karma-runner.github.io · 29 Sept 2026
Testing frameworks
Plugins are available for Jasmine, Mocha, QUnit, and other testing frameworks.github.com · 29 Sept 2026
Browser launchers
Documented launchers include Chrome, Firefox, Safari, PhantomJS, JSDOM, Opera, Internet Explorer, SauceLabs, and BrowserStack.karma-runner.github.io · 29 Sept 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.karma-runner.github.io · 29 Sept 2026
Plugin model
Preprocessors, reporters, browser launchers, and framework adapters are plugins that can be installed from npm or written for Karma.karma-runner.github.io · 29 Sept 2026
CI integrations
The documentation provides integration guides for Travis CI, Jenkins, and Semaphore CI.karma-runner.github.io · 29 Sept 2026
Installation
Karma runs on Node.js, is distributed as an npm package, and the installation guide recommends installing it locally in the project.karma-runner.github.io · 29 Sept 2026
License
Karma is released under the MIT license.karma-runner.github.io · 29 Sept 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.github.com · 29 Sept 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.github.com · 29 Sept 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.github.com · 29 Sept 2026
Testing scope
The FAQ says Karma was primarily designed for low-level unit testing and recommends Protractor for high-level testing.karma-runner.github.io · 29 Sept 2026
Support
The project directs questions to its mailing list or Gitter and says the issue tracker is for bug reports and feature discussions.github.com · 29 Sept 2026

Best Karma alternatives

See all 12

Where it ranks on Samsung Mobile US Press

Is Karma yours?

Claim it for free: prove the domain, then correct facts, plans and screenshots. An editor reviews every change.

Sources