覆盖 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',
} ]
]
};
预期结果:
- 包含测试结果的文件
./test_reports/jest-junit.xml
实际结果:
- 默认为测试结果的文件
./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选项优先级较高,不提供outputDirectory
和outputName
,测试结果会恢复为默认的junit.xml
.
如何覆盖默认输出目录和文件名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',
} ]
]
};
预期结果:
- 包含测试结果的文件
./test_reports/jest-junit.xml
实际结果:
- 默认为测试结果的文件
./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选项优先级较高,不提供outputDirectory
和outputName
,测试结果会恢复为默认的junit.xml
.