open-nomad/ui/testem.js
Buck Doyle eba07dabe5
CI: add xUnit reporting for UI tests (#7585)
This surfaces test failures more clearly on CircleCI by adding
testem-multi-reporter to report both via the default TAP reporter
as well as an xUnit reporter whose output is stored as an artefact.
2020-04-01 11:19:44 -05:00

47 lines
1.3 KiB
JavaScript

/* eslint-env node */
const MultiReporter = require('testem-multi-reporter');
const TapReporter = require('testem/lib/reporters/tap_reporter');
const XunitReporter = require('testem/lib/reporters/xunit_reporter');
const fs = require('fs');
const config = {
test_page: 'tests/index.html?hidepassed',
disable_watching: true,
launch_in_ci: ['Chrome'],
launch_in_dev: ['Chrome'],
browser_args: {
// New format in testem/master, but not in a release yet
// Chrome: {
// ci: ['--headless', '--disable-gpu', '--remote-debugging-port=9222', '--window-size=1440,900'],
// },
Chrome: {
ci: [
// --no-sandbox is needed when running Chrome inside a container
process.env.CI ? '--no-sandbox' : null,
'--headless',
'--disable-dev-shm-usage',
'--disable-software-rasterizer',
'--mute-audio',
'--remote-debugging-port=0',
'--window-size=1440,900'
].filter(Boolean)
}
}
};
if (process.env.CI) {
const reporters = [{
ReporterClass: TapReporter,
args: [false, null, { get: () => false }]
}, {
ReporterClass: XunitReporter,
args: [false, fs.createWriteStream('/tmp/test-reports/ui.xml'), { get: () => false }]
}];
const multiReporter = new MultiReporter({ reporters });
config.reporter = multiReporter;
}
module.exports = config;