我正在尝试为我们在 Jenkins 中的构建生成代码覆盖率报告 - 当我执行命令时在本地
npm run coverage
"scripts": {
"test": "cross-env mocha test -t 5000 --recursive --exit --reporter mochawesome",
"coverage":"nyc --reporter=html --reporter=text ./node_modules/.bin/mocha test -t 5000 --recursive --exit"
},
它将运行测试,然后给我代码覆盖率结果
现在,当在詹金斯中运行相同的代码时,我得到了这个错误
/var/lib/jenkins/jobs/api-ci-develop/workspace/back-end/node_modules/path-to-regexp/index.js:63 path = ('^' + path + (strict ?'' : path [path.length - 1] === '/' ? '?' : '/?')) ^
类型错误:无法读取 pathtoRegexp 处未定义的属性“长度”(/var/lib/jenkins/jobs/api-ci-develop/workspace/back-end/node_modules/path-to-regexp/index.js:63:49)在新层(/var/lib/jenkins/jobs/api-ci-develop/workspace/back-end/node_modules/express/lib/router/layer.js:45:17)
显然正在对 node_module 文件夹做一些事情,我不知道如何避免这种情况。我排除了 nyc 配置中的文件夹和文件
"nyc": {
"branches": 5,
"lines": 25,
"functions": 13,
"statements": 25,
"check-coverage": true,
"exclude": [
"**/services/plaidService.js",
"**/node_modules/**",
"**/node_modules/plaid/lib/PlaidClient.js"
]
},
我应该怎么做才能避免检查 node_modules 文件夹?