Override jest-junit default output location?
Asked Answered
U

1

13

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
Unintelligible answered 17/12, 2019 at 10:43 Comment(0)
U
14

Solution

change package.json script from

"scripts": {
  "test": "jest --ci --reporters=default --reporters=jest-junit"
},

to just

"scripts": {
  "test": "jest --ci"
},

Explanation

The problem is that reporters configuration have been provided to both the jest.config.js file as well as cli arguments to the test script in package.json. The CLI options has higher precedence and does not provide the outputDirectory and outputName, the test result will revert to the default junit.xml.

Unintelligible answered 18/12, 2019 at 13:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.