在GitLab CI中运行./node_modules/.bin/cucumber-js时出错 [英] Error running ./node_modules/.bin/cucumber-js in GitLab CI

查看:67
本文介绍了在GitLab CI中运行./node_modules/.bin/cucumber-js时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我的节点项目设置CI构建.尽管我的 npm运行测试在我的本地环境中可以正常工作,但是gitlab ci抛出了异常.

I am setting up a CI build for my node project. Although my npm run test works as expected in my local environment, the gitlab ci is throwing an exception.

test命令失败:>nyc ./node_modules/.bin/cucumber-js ./test/BDD/**/*.feature -f node_modules/cucumber-pretty -f json:./test/report/cucumber_report.json --require-module ts-节点/注册--require ./test/**/*.ts

The test command fails in: > 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

错误:解析"test/BDD/step-definition.ts"中的错误:(1:1):预期:#EOF,#Language,#TagLine,#FeatureLine,#Comment,#Empty,获取了"import {"StepDefinitionCode",从黄瓜"给出给定的何时",何时","StepDefinitionOptions";在/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._promiseFulfilled(/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/generators.js:97:49)在/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._promiseFulfilled(/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)在Promise._settlePromise0(/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/promise.js:619:10)在Promise._settlePromises(/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/promise.js:699:18)在_drainQueueStep(/builds/cristianmercado19/basic-package/node_modules/bluebird/js/release/async.js:138:12)

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 文件夹与我的本地文件夹进行比较.两者都一样.
  • 删除纽约
  • 更新软件包版本
  • 此最小脚本也未通过"test":"./node_modules/.bin/cucumber-js test/BDD/**/*.feature --require-module ts-node/register --require./test/**/*.ts,
  • to get the artifacts and compare the cucumber folder with my local. Both are the same.
  • removing nyc
  • updating packages versions
  • this minimum script also fails "test": "./node_modules/.bin/cucumber-js test/BDD/**/*.feature --require-module ts-node/register --require ./test/**/*.ts",

推荐答案

我不知道该脚本由于什么原因在GitLab CI中不起作用(在我的本地环境中可用)

I do not know for what reason this script does not work in the GitLab CI (works in my local)

"test":"nyccumber-js -f node_modules/cucumber-pretty -f json:./test/report/cucumber_report.json --require test/**/*.ts ./test/BDD/**/*.feature,

相反,我将配置提取到了 cucumber.js 文件

Instead, I have extracted that configuration in a cucumber.js file

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_modules/.bin/cucumber-js -p默认值",

这篇关于在GitLab CI中运行./node_modules/.bin/cucumber-js时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆