Skip to content

Instantly share code, notes, and snippets.

@exiguus
Last active November 9, 2018 14:15
Show Gist options
  • Save exiguus/18a40cdfb720319cfcbd5aac79202580 to your computer and use it in GitHub Desktop.
Save exiguus/18a40cdfb720319cfcbd5aac79202580 to your computer and use it in GitHub Desktop.
Karma, Puppeteer, ChromeHeadless, Jenkins Executor Deps

Karma & ChromeHeadless

Karma / Jasmine / Webpack with Puppeteer (ChromeHeadless) and Jenkins Executor Deps

OS Dependencies

packages (debian / ubuntu)

gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget

ChromeHeadless Runtime Options

--no-sandbox
--disable-setuid-sandbox

Other

Debian ChromeHeadless Deps puppeteer/puppeteer#290 Karma Chrome Launcher https://github.com/karma-runner/karma-chrome-launcher

const puppeteer = require('puppeteer');
process.env.CHROME_BIN = puppeteer.executablePath();
module.exports = (config) => {
config.set({
frameworks: ['jasmine'],
browsers: ['ChromeHeadlessNoSandbox'],
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
'--disable-setuid-sandbox'
]
}
},
files: [{
pattern: 'src/js/*.test.js',
watched: false
}],
preprocessors: {
'src/js/*.test.js': ['webpack']
},
webpack: {
mode: 'production',
module: {
rules: [
// BABEL
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /(node_modules)/,
options: {
compact: true
}
}
]
}
}
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment