How can I override the default output directory and file name jest-junit?
I would like to customise the output configuration of output when using Jest, but it still ends up in the default location, i.e. ./junit.xml in the project root folder.
My configuration
In package.json:
"scripts": {
"test": "jest --ci --reporters=default --reporters=jest-junit"
},
"devDependencies": {
"jest": "^24.9.0",
"jest-junit": "^10.0.0",
}
In jest.config.js
module.exports = {
testMatch: [
'**/*.spec.js',
],
reporters: [
'default',
[ 'jest-junit', {
outputDirectory: 'test_reports',
outputName: 'jest-junit.xml',
} ]
]
};
Expected result:
- A file with the test result at
./test_reports/jest-junit.xml
Actual result:
- A file with the test result at the default
./junit.xml
Solution
change
package.jsonscript fromto just
Explanation
The problem is that reporters configuration have been provided to both the
jest.config.jsfile as well as cli arguments to thetestscript in package.json. The CLI options has higher precedence and does not provide theoutputDirectoryandoutputName, the test result will revert to the defaultjunit.xml.