覆盖 jest-junit 默认输出位置?

Override jest-junit default output location?

如何覆盖默认输出目录和文件名jest-junit

我想在使用 Jest 时自定义 output 的输出配置,但它仍然在默认位置,即项目根文件夹中的 ./junit.xml


我的配置

package.json:

  "scripts": {
    "test": "jest --ci --reporters=default --reporters=jest-junit"
  },
  "devDependencies": {
    "jest": "^24.9.0",
    "jest-junit": "^10.0.0",
  }

jest.config.js

module.exports = {
  testMatch: [
    '**/*.spec.js',
  ],
  reporters: [
    'default',
    [ 'jest-junit', {
      outputDirectory: 'test_reports',
      outputName: 'jest-junit.xml',
    } ]
  ]
};

预期结果:

实际结果:

解决方案

更改package.json脚本
"scripts": {
  "test": "jest --ci --reporters=default --reporters=jest-junit"
},

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

说明

问题是 jest.config.js 文件以及 package.json 中 test 脚本的 cli 参数都提供了记者配置。 CLI选项优先级较高,不提供outputDirectoryoutputName,测试结果会恢复为默认的junit.xml.