Node.js 在GitLab CI中运行./node_modules/.bin/js时出错
我正在为我的节点项目设置CI生成。尽管我的Node.js 在GitLab CI中运行./node_modules/.bin/js时出错,node.js,typescript,npm,gitlab-ci,cucumberjs,Node.js,Typescript,Npm,Gitlab Ci,Cucumberjs,我正在为我的节点项目设置CI生成。尽管我的npm运行测试在本地环境中按预期工作,但gitlab ci抛出了一个异常 测试命令在以下情况下失败: >nyc./node_modules/.bin/cucumber js./test/BDD/***.feature-f node_modules/cucucumber pretty-f json:./test/report/cucucucumber_report.json--需要模块ts节点/寄存器--需要./test/***.ts 错误:“test/B
npm运行测试在本地环境中按预期工作,但gitlab ci抛出了一个异常
测试命令在以下情况下失败:
>nyc./node_modules/.bin/cucumber js./test/BDD/***.feature-f node_modules/cucucumber pretty-f json:./test/report/cucucucumber_report.json--需要模块ts节点/寄存器--需要./test/***.ts
错误:“test/BDD/step definition.ts”中的分析错误:(1:1):应为:#EOF、#Language、#TagLine、#FeatureLine、#Comment、#Empty,从“cumber”中获取“import{StepDefinitionCode,给定,When,Then,StepDefinitionOptions}”
at/builds/cristianmercado19/basic package/node_modules/cucumber/src/cli/helpers.js:66:13
在Array.forEach()处
在forEach(/builds/cristianmercado19/basic package/node_modules/cucumber/src/cli/helpers.js:54:10)
在Generator.next()处
在Generator.tryCatcher(/builds/cristianmercado19/basic package/node_modules/bluebird/js/release/util.js:16:23)
在PromiseSpawn._PromiseCompleted(/builds/cristianmercado19/basic package/node_modules/bluebird/js/release/generators.js:97:49)
at/builds/cristianmercado19/basic package/node_modules/bluebird/js/release/generators.js:201:15
在getTestCases(/builds/cristianmercado19/basic package/node_modules/cucumber/lib/cli/helpers.js:102:18)
在getTestCases(/builds/cristianmercado19/basic package/node_modules/cucumber/src/cli/helpers.js:32:13)
在Generator.next()处
在Generator.tryCatcher(/builds/cristianmercado19/basic package/node_modules/bluebird/js/release/util.js:16:23)
在PromiseSpawn._PromiseCompleted(/builds/cristianmercado19/basic package/node_modules/bluebird/js/release/generators.js:97:49)
在Promise._settlePromise(/builds/cristianmercado19/basic package/node_modules/bluebird/js/release/Promise.js:579:26)
按承诺。_settlePromise0(/builds/cristianmercado19/basic package/node_modules/bluebird/js/release/Promise.js:619:10)
按承诺。_结算计划(/builds/cristianmercado19/basic package/node_modules/bluebird/js/release/Promise.js:699:18)
在drainQueueStep(/builds/cristianmercado19/basic package/node\u modules/bluebird/js/release/async.js:138:12)
截图:
My.gitlab ci.yml
配置:
图像:节点:最新
阶段:
-建造
-试验
隐藏物:
路径:
-节点单元/
安装依赖项:
阶段:建造
脚本:
-npm安装
-npm构建
人工产品:
路径:
-节点单元/
测试(u)测试:
阶段:测试
脚本:npm测试
“我的黄瓜”文件夹结构:
我试过
- 获取工件并将
cucumber
文件夹与我的本地文件夹进行比较。两者都是一样的
- 移除纽约市
- 更新软件包版本
- 此最小脚本也会失败。
“测试”:“/node\u modules/.bin/js test/BDD/***。功能--需要模块ts node/register--需要./test/***.ts”,
我不知道该脚本在GitLab CI中不起作用的原因(在我的本地版本中起作用)
“test:“nyc cucumber js-f node_modules/cucumber pretty-f json:./test/report/cucucumber_report.json——需要test/***.ts./test/BDD/***.feature”,
相反,我在cucumber.js
文件中提取了该配置
let common = [
'test/**/*.feature',
'--require-module ts-node/register',
'--require test/**/*.ts',
'--format node_modules/cucumber-pretty',
'--format json:./test/report/cucumber_report.json'
].join(' ');
module.exports = {
default: common,
};
并将test
脚本替换为:
“测试”:“nyc./node\u modules/.bin/cucumber js-p default”,