1. karma-jsdom-launcher
A Karma plugin. Launcher for jsdom.
karma-jsdom-launcher
Package: karma-jsdom-launcher
Created by: badeball
Last modified: Wed, 24 Jan 2024 18:58:50 GMT
Version: 17.0.0
License: MIT
Downloads: 59,808
Repository: https://github.com/badeball/karma-jsdom-launcher

Install

npm install karma-jsdom-launcher
yarn add karma-jsdom-launcher

karma-jsdom-launcher

Launcher for jsdom.

Installation

 npm install karma-jsdom-launcher --save-dev

NOTE: karma and jsdom are peerDependencies of this module. If you haven't install them, run

 npm install karma-jsdom-launcher jsdom karma --save-dev

to install all your dependencies.

Configuration

 // karma.conf.js
module.exports = function(config) {
  config.set({
    browsers: ['jsdom'],
  });
};

You can pass list of browsers as a CLI argument too:

 karma start --browsers jsdom

You can pass options directly to jsdom as shown below. See jsdom's own
documentation for all supported options.

 // karma.conf.js
const jsdom = require("jsdom");

module.exports = function(config) {
  config.set({
    browsers: ['jsdom'],

    jsdomLauncher: {
      jsdom: {
        resources: new jsdom.ResourceLoader({
          userAgent: "foobar",
        })
      }
    }
  });
};

FAQ

I am using Gulp and the test suite is not exiting

This occurs due to lingering event handlers and it is currently an unsolved
issue
. Meanwhile you have to explicitly exit the process yourself.
This can be done by not passing a callback to Karma.Server or by invoking
process.exit(), as shown below.

 var gulp = require('gulp');
var Server = require('karma').Server;

gulp.task('test', function () {
  new Server({
    configFile: __dirname + '/karma.conf.js',
    singleRun: true
  }).start();
});
 var gulp = require('gulp');
var Server = require('karma').Server;

gulp.task('test', function (done) {
  new Server({
    configFile: __dirname + '/karma.conf.js',
    singleRun: true
  }, function (exitCode) {
    done();
    process.exit(exitCode);
  }).start();
});

I am using Angular CLI and the test suite hangs indefinitely

You might experience a known issue where Karma attempts to perform
a synchronous request, resulting in a deadlock. Disable use of source-maps in
your tests, as shown below.

// angular.json

{
  ...
        "test": {
          "options": {
            "sourceMap": false


For more information on Karma see the homepage.

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code