# karma-runner/karma

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/karma-runner-karma).**

11,958 stars · 1,716 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/karma-runner/karma
- Homepage: http://karma-runner.github.io
- awesome-repositories: https://awesome-repositories.com/repository/karma-runner-karma.md

## Description

Karma is a JavaScript test runner designed for executing test suites across multiple real web browsers to ensure cross-browser compatibility. It functions as a browser-based execution system that launches browsers, captures console output, and provides a command line interface for running automated tests within continuous integration pipelines.

The project utilizes a plugin architecture that allows for the integration of third-party launchers, reporters, and preprocessors. It employs an adapter-based framework to execute tests from various assertion libraries through a unified runner interface, supporting both automated browser orchestration and manual connections from physical mobile devices or tablets.

The system includes capabilities for monitoring source files to automatically trigger test re-execution and provides tools for capturing browser console logs and integrating with IDE debuggers. It further manages the test lifecycle through static asset serving, network request proxying for cross-origin resources, and configurable test scope patterns.

## Tags

### Testing & Quality Assurance

- [Cross-Browser Testing Tools](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-infrastructure-configuration/cross-browser-testing-tools.md) — Provides a system for executing JavaScript test suites across multiple real web browsers to ensure cross-browser compatibility.
- [Test Runners](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-runners.md) — Acts as a command-line test runner that executes JavaScript suites across multiple real browsers.
- [HTTP Test Serving](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-execution-orchestration/http-test-serving.md) — Serves test files and an HTML runner via a web server to execute JavaScript in real browser environments.
- [Browser Automation Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/browser-and-ui-testing/browser-automation-frameworks/browser-automation-testing.md) — Automatically launches and terminates web browsers to orchestrate the execution of test suites. ([source](https://karma-runner.github.io/latest/config/browsers.html))
- [Test Execution Runners](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners.md) — Implements a standardized runner interface to execute tests from diverse assertion libraries and frameworks.
- [Browser Execution](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners/browser-execution.md) — Launches web browsers and captures console output to execute tests within a real runtime environment.
- [Dynamic Runner Generation](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners/dynamic-runner-generation.md) — Produces a temporary web page that loads the test suite and coordinates execution within the target browser.
- [Framework Integrations](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners/framework-integrations.md) — Provides an adapter-based framework to integrate diverse assertion libraries into a unified runner interface. ([source](https://github.com/karma-runner/karma/blob/master/README.md))
- [CI Execution Modes](https://awesome-repositories.com/f/testing-quality-assurance/ci-execution-modes.md) — Supports executing the test suite once and exiting immediately after completion for use in automated pipelines. ([source](https://github.com/karma-runner/karma/blob/master/config.tpl.ls))
- [CI Integration Testing](https://awesome-repositories.com/f/testing-quality-assurance/ci-integration-testing.md) — Executes automated test suites within CI/CD pipelines to verify code quality and prevent regressions during deployment.
- [Test Reporters](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-reporters.md) — Outputs test execution outcomes using various reporting formats and logging levels to track success and failure. ([source](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md))
- [Test File Selection](https://awesome-repositories.com/f/testing-quality-assurance/test-file-selection.md) — Specifies which files to include or exclude from a test run using configurable path patterns. ([source](https://github.com/karma-runner/karma/blob/master/config.tpl.ts))
- [Test Source Preprocessing](https://awesome-repositories.com/f/testing-quality-assurance/test-source-preprocessing.md) — Transforms files using custom logic or plugins before serving them to the browser. ([source](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md))

### Development Tools & Productivity

- [Command Line Interfaces](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces.md) — Provides a command line interface to start and manage test suites from any directory. ([source](https://karma-runner.github.io/latest/intro/installation.html))
- [Automated Test Execution](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/automated-test-execution.md) — Monitors source files for changes and automatically re-runs tests to provide instant feedback during development.
- [Reactive Watch Modes](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/automated-test-execution/reactive-watch-modes.md) — Automatically re-executes the test suite whenever a file save is detected to provide instant feedback. ([source](https://github.com/karma-runner/karma/blob/master/README.md))
- [File Watchers](https://awesome-repositories.com/f/development-tools-productivity/file-watchers.md) — Monitors source files for changes to automatically trigger the test execution pipeline.

### Software Engineering & Architecture

- [Extensible Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/extensible-plugin-architectures.md) — Provides a plugin architecture for custom file preprocessing, browser launching, and result reporting.
- [Testing Framework Adapters](https://awesome-repositories.com/f/software-engineering-architecture/integration-adapters/testing-framework-adapters.md) — Implements a translation layer to execute tests from various assertion libraries through a unified runner interface.
- [Third-Party Plugins](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/third-party-plugins.md) — Enables the integration of third-party frameworks, launchers, and reporters to customize the test execution pipeline. ([source](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md))
- [Browser-to-Server Channels](https://awesome-repositories.com/f/software-engineering-architecture/message-passing-channels/browser-to-server-channels.md) — Intercepts browser console logs and test results to relay them back to the server terminal.
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Employs a plugin architecture for integrating third-party launchers, reporters, and preprocessors.

### Web Development

- [Browser Lifecycle Managers](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-orchestration-systems/browser-lifecycle-managers.md) — Provides control over starting, stopping, and capturing browser instances, including timeout handling and automatic cleanup. ([source](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md))
- [Custom Browser Configurations](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-apis/browser-launchers/custom-browser-configurations.md) — Allows creating specialized browser configurations with custom scripts to identify specific environments in reports. ([source](https://karma-runner.github.io/latest/config/browsers.html))

### Part of an Awesome List

- [Virtual Console Capture](https://awesome-repositories.com/f/awesome-lists/devtools/logging-and-monitoring/virtual-console-capture.md) — Intercepts browser-side console logs and alerts to report them back to the server terminal. ([source](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md))
- [Testing and Quality Assurance](https://awesome-repositories.com/f/awesome-lists/devtools/testing-and-quality-assurance.md) — Spectacular test runner for JavaScript.
- [Testing Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/testing-frameworks.md) — Spectacular Test Runner for JavaScript.
- [Testing Frameworks and Tools](https://awesome-repositories.com/f/awesome-lists/devtools/testing-frameworks-and-tools.md) — Test runner that executes code in multiple real browsers.

### DevOps & Infrastructure

- [Continuous Integration](https://awesome-repositories.com/f/devops-infrastructure/continuous-integration.md) — Provides a command line interface for running automated tests within CI/CD pipelines and build servers.
