Launcher for Google Chrome, Google Chrome Canary and Google Chromium.
The easiest way is to keep karma-chrome-launcher
as a devDependency in your package.json
, by running
$ npm i -D karma-chrome-launcher
// karma.conf.js module.exports = function(config) { config.set({ browsers: ['Chrome', 'Chrome_without_security'], // You may use 'ChromeCanary', 'Chromium' or any other supported browser // you can define custom flags customLaunchers: { Chrome_without_security: { base: 'Chrome', flags: ['--disable-web-security', '--disable-site-isolation-trials'] } } }) }
The --user-data-dir
is set to a temporary directory but can be overridden on a custom launcher as shown below. One reason to do this is to have a permanent Chrome user data directory inside the project directory to be able to install plugins there (e.g. JetBrains IDE Support plugin).
customLaunchers: { Chrome_with_debugging: { base: 'Chrome', chromeDataDir: path.resolve(__dirname, '.chrome') } }
You can pass list of browsers as a CLI argument too:
$ karma start --browsers Chrome,Chrome_without_security
The Chrome DevTools team created Puppeteer - it will automatically install Chromium for all platforms and contains everything you need to run it from within your CI.
Note: Headless mode requires a browser version >= 59
$ npm i -D puppeteer karma-chrome-launcher
// karma.conf.js process.env.CHROME_BIN = require('puppeteer').executablePath() module.exports = function(config) { config.set({ browsers: ['ChromeHeadless'] }) }
For more information on Karma see the homepage.