1. karma-firefox-launcher
A Karma plugin. Launcher for Firefox.
karma-firefox-launcher
Package: karma-firefox-launcher
Created by: karma-runner
Last modified: Sun, 03 Mar 2024 23:32:01 GMT
Version: 2.1.3
License: MIT
Downloads: 1,311,558
Repository: https://github.com/karma-runner/karma-firefox-launcher

Install

npm install karma-firefox-launcher
yarn add karma-firefox-launcher

karma-firefox-launcher

js-standard-style
npm version npm downloads
semantic-release

Build Status Dependency Status devDependency Status

Launcher for Mozilla Firefox.

karma-firefox-launcher is deprecated and is not accepting new features or general bug fixes.

See deprecation notice for karma.

Web Test Runner,
jasmine-browser-runner,
and playwright-test provide
browser-based unit testing solutions which can be used as a direct alternative.

Installation

The easiest way is to keep karma-firefox-launcher as a devDependency in your package.json.

You can simple do it by:

 npm install karma-firefox-launcher --save-dev

Configuration

 // karma.conf.js
module.exports = function (config) {
  config.set({
    plugins: [require("karma-firefox-launcher")],
    browsers: [
      "Firefox",
      "FirefoxDeveloper",
      "FirefoxAurora",
      "FirefoxNightly",
    ],
  });
};

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

 karma start --browsers Firefox,Chrome

To run Firefox in headless mode, append Headless to the version name, e.g. FirefoxHeadless, FirefoxNightlyHeadless.

Environment variables

You can specify the location of the Firefox executable using the following
environment variables:

  • FIREFOX_BIN (for browser Firefox or FirefoxHeadless)
  • FIREFOX_DEVELOPER_BIN (for browser FirefoxDeveloper or
    FirefoxDeveloperHeadless)
  • FIREFOX_AURORA_BIN (for browser FirefoxAurora or FirefoxAuroraHeadless)
  • FIREFOX_NIGHTLY_BIN (for browser FirefoxNightly or
    FirefoxNightlyHeadless)

Custom Firefox location

In addition to Environment variables you can specify location of the Firefox executable in a custom launcher:

 browsers: ['Firefox68', 'Firefox78'],

customLaunchers: {
    Firefox68: {
        base: 'Firefox',
        name: 'Firefox68',
        command: '<path to FF68>/firefox.exe'
    },
    Firefox78: {
        base: 'Firefox',
        name: 'Firefox78',
        command: '<path to FF78>/firefox.exe'
    }
}

Custom Preferences

To configure preferences for the Firefox instance that is loaded, you can specify a custom launcher in your Karma
config with the preferences under the prefs key:

 browsers: ['FirefoxAutoAllowGUM'],

customLaunchers: {
    FirefoxAutoAllowGUM: {
        base: 'Firefox',
        prefs: {
            'media.navigator.permission.disabled': true
        }
    }
}

Loading Firefox Extensions

If you have extensions that you want loaded into the browser on startup, you can specify the full path to each
extension in the extensions key:

 browsers: ['FirefoxWithMyExtension'],

customLaunchers: {
    FirefoxWithMyExtension: {
        base: 'Firefox',
        extensions: [
          path.resolve(__dirname, 'helpers/extensions/[email protected]'),
          path.resolve(__dirname, 'helpers/extensions/[email protected]')
        ]
    }
}

Please note: the extension name must exactly match the 'id' of the extension. You can discover the 'id' of your
extension by extracting the .xpi (i.e. unzip XXX.xpi) and opening the install.RDF file with a text editor, then look
for the em:id tag under the Description tag. If your extension manifest looks something like this:

 <?xml version="1.0" encoding="utf-8"?>
   <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>myCustomExt@suchandsuch</em:id>
    <em:version>1.0</em:version>
    <em:type>2</em:type>
    <em:bootstrap>true</em:bootstrap>
    <em:unpack>false</em:unpack>

    [...]
  </Description>
</RDF>

Then you should name your extension [email protected].


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