在 CI 中使用 jest-junit 的主要记录方式是
jest --ci --reporters=default --reporters=jest-junit
Jest 文档添加了双引号:
jest --reporters="default" --reporters="jest-junit"
但是,无论哪种情况,我都会收到此错误:
nps is executing `test.ci` : jest --ci --reporters=default --reporters=jest-junit **/*.test.[jt]s
Error: Could not resolve a module for a custom reporter.
Module name: tests/fail.test.ts
at <project_root>/node_modules/jest-config/build/normalize.js:426:15
at Array.map (<anonymous>)
at normalizeReporters (<project_root>/node_modules/jest-config/build/normalize.js:409:20)
at <project_root>/node_modules/jest-config/build/normalize.js:747:17
at Array.reduce (<anonymous>)
at normalize (<project_root>/node_modules/jest-config/build/normalize.js:608:14)
at readConfig (<project_root>/node_modules/jest-config/build/index.js:160:74)
at async readConfigs (<project_root>/node_modules/jest-config/build/index.js:424:26)
at async runCLI (<project_root>/node_modules/@jest/core/build/cli/index.js:151:59)
at async Object.run (<project_root>/node_modules/jest-cli/build/run.js:130:37)
它似乎是在
jest-config
来源。
已弃用的
jest --ci --testResultsProcessor=jest-junit
确实有效,但我宁愿避免它
对 testResultsProcessor 的支持仅出于遗留原因而保留,将来可能会被删除。因此,您应该更愿意将 jest-junit 配置为报告者。
记者使用可能存在什么问题?
Jest 版本是 29.7.0,我检查过
jest-config
、jest-cli
和 jest
之间没有不匹配的情况。 jest-junit
是 16.0.0.
在
package.json
我有:
"jest": {
"clearMocks": true,
"collectCoverageFrom": [
"tests/**/*.{js,jsx,ts,tsx}"
],
"coverageReporters": [
"lcov"
],
"resetModules": true,
"resetMocks": true,
"setupFiles": [
"./tests/helper.ts"
],
"testEnvironment": "node",
"transform": {
"^.+\\.[jt]sx?$": "babel-jest"
}
},
没有
jest.config.*
文件。
答案就是没有
reporters
,
jest --ci **/*.test.[jt]s
工作正常。有了它们,我需要
--
来分隔测试文件 glob:
jest --ci --reporters=default --reporters=jest-junit -- **/*.test.[jt]s