在create-react-app/react-scripts@2.1.1项目中,我正在尝试使用jest-junit生成覆盖率报告。不幸的是,它失败并显示以下内容:
$ yarn run test --coverage
Failed to write coverage reports:
ERROR: Error: Invalid report format [jest-junit]
STACK: Error: Invalid report format [jest-junit]
at Object.module.exports.create (D:\Users\username\Documents\Project\node_modules\istanbul-api\lib\input-error.js:6:15)
at Reporter.add (D:\Users\username\Documents\Project\node_modules\istanbul-api\lib\reporter.js:51:30)
at D:\Users\username\Documents\Project\node_modules\istanbul-api\lib\reporter.js:62:18
at Array.forEach (<anonymous>)
at Reporter.addAll (D:\Users\username\Documents\Project\node_modules\istanbul-api\lib\reporter.js:61:14)
at D:\Users\username\Documents\Project\node_modules\jest-cli\build\reporters\coverage_reporter.js:180:18
at Generator.next (<anonymous>)
at step (D:\Users\username\Documents\Project\node_modules\jest-cli\build\reporters\coverage_reporter.js:75:30)
at D:\Users\username\Documents\Project\node_modules\jest-cli\build\reporters\coverage_reporter.js:86:15
at process._tickCallback (internal/process/next_tick.js:68:7)
如果运行yarn run test
,我不会遇到任何错误。以下配置块已添加到项目的package.json
文件中:
{
...
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx,ts,tsx}",
"!src/**/*.d.ts",
"!src/**/__stories__/",
"!<rootDir>/node_modules/"
],
"coverageReporters": [
"jest-junit"
]
}
...
}
有人在create-react-app @ 2项目中成功配置了jest-junit吗?
答案 0 :(得分:2)
感谢@jonrsharpe的快速评论。我没有给予足够的关注……我的错误是将笑话放到了CoverageReporters(而不是记者)中。
不幸的是,create-react-app @ 2似乎不支持package.json中的自定义报告器配置。有趣的是,以下命令有效:
$ yarn run test --coverage --reporters=default --reporters=jest-junit
我习惯了大多数create-react-app的配置,这些配置会覆盖任何显式定义的选项。但是,看来yarn run test
存在一个例外(或漏洞?)。通过上面的操作,我得到了所需的junit.xml文件。