Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

karma-parallel

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

karma-parallel

A Karma JS Framework to support sharding tests to run in parallel across multiple browsers

  • 0.1.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
54K
decreased by-1.98%
Maintainers
1
Weekly downloads
 
Created
Source

karma-parallel

npm version npm downloads Build Status js-standard-style dependencies Status devDependencies Status

A Karma JS plugin to support sharding tests to run in parallel across multiple browsers.

Overview

This is intended to speed up the time it takes to run unit tests by taking advantage of multiple cores. From a single karma server, multiple instances of a browser are spun up. Each browser downloads all of the spec files, but when a describe block is encountered, the browsers deterministically decide if that block should run in the given browser.

This leads to a way to split up unit tests across multiple browsers without changing any build processes.

Installation

The easiest way is to install karma-parallel as a devDependency.

Using NPM

npm install karma-parallel --save-dev

Using Yarn

yarn add karma-parallel --dev

Examples

Basic

// karma.conf.js
module.exports = function(config) {
  config.set({

    frameworks: ['mocha' /* or 'jasmine' */, 'parallel'], // this will load the framework and beforeMiddleware
    
    parallelOptions: {
      executors: 4,
      shardStrategy: 'round-robin' /* or 'description-length' */
    }
  });
};

Options

parallelOptions [object]: Options for this plugin

parallelOptions.executors [int=cpu_cores-1]: The number of browser instances to use to test. If you test on multiple types of browsers, this spin up the number of executors for each browser type.

parallelOptions.shardStyle [string='round-robin']: This plugin works by overriding the test suite describe() function. When it encounters a describe, it must decide if it will skip the tests inside of it, or not.

  • The round-robin style will only take every executors test suite and skip the ones in between.
  • The description-length deterministically checks the length of the description for each test suite use a modulo of the number of executors.

For more information on Karma see the homepage.

See Also

karma-sharding

This similar project works by splitting up the actual spec files across the browser instances.

Pros:

  • Reduces memory by only loading some of the spec files in each browser instance

Cons:

Keywords

FAQs

Package last updated on 16 Jan 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc