GitLab CI 中的错误 运行 ./node_modules/.bin/cucumber-js
Error running ./node_modules/.bin/cucumber-js in GitLab CI
我正在为我的节点项目设置 CI 构建。尽管我的 npm run test
在我的本地环境中按预期工作,但 gitlab ci 抛出异常。
测试命令失败于:
> nyc ./node_modules/.bin/cucumber-js ./test/BDD/**/*.feature -f node_modules/cucumber-pretty -f json:./test/report/cucumber_report.json --require-module ts-node/register --require ./test/**/*.ts
Error: Parse error in 'test/BDD/step-definition.ts': (1:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'import { StepDefinitionCode, Given, When, Then, StepDefinitionOptions } from "cucumber";'
at /builds/cristianmercado19/basic-package/node_modules/cucumber/src/cli/helpers.js:66:13
at Array.forEach ()
at forEach (/builds/cristianmercado19/basic-package/node_modules/cucumber/src/cli/helpers.js:54:10)
at Generator.next ()
at Generator.tryCatcher (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/util.js:16:23)
at PromiseSpawn._promiseFulfilled (/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
at getTestCases (/builds/cristianmercado19/basic-package/node_modules/cucumber/lib/cli/helpers.js:102:18)
at getTestCases (/builds/cristianmercado19/basic-package/node_modules/cucumber/src/cli/helpers.js:32:13)
at Generator.next ()
at Generator.tryCatcher (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/util.js:16:23)
at PromiseSpawn._promiseFulfilled (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/generators.js:97:49)
at Promise._settlePromise (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/promise.js:579:26)
at Promise._settlePromise0 (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/promise.js:699:18)
at _drainQueueStep (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/async.js:138:12)
截图:
我的.gitlab-ci.yml
配置:
image: node:latest
stages:
- build
- test
cache:
paths:
- node_modules/
install_dependencies:
stage: build
script:
- npm install
- npm build
artifacts:
paths:
- node_modules/
testing_testing:
stage: test
script: npm test
我的 cucumber 文件夹结构:
我试过了...
- 获取工件并将
cucumber
文件夹与我的本地文件夹进行比较。两者是一样的。
- 删除纽约
- 正在更新软件包版本
- 这个最小脚本也失败了
"test": "./node_modules/.bin/cucumber-js test/BDD/**/*.feature --require-module ts-node/register --require ./test/**/*.ts",
我不知道为什么这个脚本在 GitLab 中不起作用CI(在我的本地工作)
"test": "nyc cucumber-js -f node_modules/cucumber-pretty -f json:./test/report/cucumber_report.json --require 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
脚本替换为:
"test": "nyc ./node_modules/.bin/cucumber-js -p default",
我正在为我的节点项目设置 CI 构建。尽管我的 npm run test
在我的本地环境中按预期工作,但 gitlab ci 抛出异常。
测试命令失败于:
> nyc ./node_modules/.bin/cucumber-js ./test/BDD/**/*.feature -f node_modules/cucumber-pretty -f json:./test/report/cucumber_report.json --require-module ts-node/register --require ./test/**/*.ts
Error: Parse error in 'test/BDD/step-definition.ts': (1:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'import { StepDefinitionCode, Given, When, Then, StepDefinitionOptions } from "cucumber";' at /builds/cristianmercado19/basic-package/node_modules/cucumber/src/cli/helpers.js:66:13 at Array.forEach () at forEach (/builds/cristianmercado19/basic-package/node_modules/cucumber/src/cli/helpers.js:54:10) at Generator.next () at Generator.tryCatcher (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/util.js:16:23) at PromiseSpawn._promiseFulfilled (/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 at getTestCases (/builds/cristianmercado19/basic-package/node_modules/cucumber/lib/cli/helpers.js:102:18) at getTestCases (/builds/cristianmercado19/basic-package/node_modules/cucumber/src/cli/helpers.js:32:13) at Generator.next () at Generator.tryCatcher (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/util.js:16:23) at PromiseSpawn._promiseFulfilled (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/generators.js:97:49) at Promise._settlePromise (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/promise.js:579:26) at Promise._settlePromise0 (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/promise.js:619:10) at Promise._settlePromises (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/promise.js:699:18) at _drainQueueStep (/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/async.js:138:12)
截图:
我的.gitlab-ci.yml
配置:
image: node:latest
stages:
- build
- test
cache:
paths:
- node_modules/
install_dependencies:
stage: build
script:
- npm install
- npm build
artifacts:
paths:
- node_modules/
testing_testing:
stage: test
script: npm test
我的 cucumber 文件夹结构:
我试过了...
- 获取工件并将
cucumber
文件夹与我的本地文件夹进行比较。两者是一样的。 - 删除纽约
- 正在更新软件包版本
- 这个最小脚本也失败了
"test": "./node_modules/.bin/cucumber-js test/BDD/**/*.feature --require-module ts-node/register --require ./test/**/*.ts",
我不知道为什么这个脚本在 GitLab 中不起作用CI(在我的本地工作)
"test": "nyc cucumber-js -f node_modules/cucumber-pretty -f json:./test/report/cucumber_report.json --require 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
脚本替换为:
"test": "nyc ./node_modules/.bin/cucumber-js -p default",