GitLab/JUnit reporter for testem
GitLab requires the JUnit format for test results. testem comes with an xUnit reporter. Unfortunately, even though the formats look quite similar there are some differences which make them incompatible in the context of GitLab CI. testem-gitlab-reporter is a testem reporter that specifically targets the format that is expected by GitLab CI.
npm install testem-gitlab-reporter
Change your testem.js
file to use the testem-gitlab-reporter package. If
you would like to keep the existing TAP console output you can use the
testem-multi-reporter package to take advantage of multiple reporters:
const MultiReporter = require('testem-multi-reporter');
const GitLabReporter = require('testem-gitlab-reporter');
const TAPReporter = require('testem/lib/reporters/tap_reporter');
let reporter = new MultiReporter({
reporters: [
{
ReporterClass: TAPReporter,
args: [false, null, { get: () => false }],
},
{
ReporterClass: GitLabReporter,
args: [false, fs.createWriteStream('junit.xml'), { get: () => false }],
},
],
});
module.exports = {
framework: 'qunit',
test_page: 'tests/index.html?hidepassed&coverage',
disable_watching: true,
launch_in_ci: [
'Chrome'
],
reporter
};
Running testem (or ember test
) now will create a junit.xml
file, which can
be passed to GitLab as described in the GitLab docs.
This project is developed by and © Mainmatter GmbH and contributors. It is released under the MIT License.