Node.js 在Jenkins上运行时出现错误

Node.js 在Jenkins上运行时出现错误,node.js,jenkins,jenkins-pipeline,cucumberjs,testcafe,Node.js,Jenkins,Jenkins Pipeline,Cucumberjs,Testcafe,我正在尝试设置jenkins管道步骤,以使用cucumber js运行一些测试场景,但我从构建中得到一个错误,如下所示: Error: Parse error in 'e2e/definitions/login.js': (1:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'const { Given, When, Then } = require('cucumber');' cucum

我正在尝试设置jenkins管道步骤,以使用
cucumber js
运行一些测试场景,但我从构建中得到一个错误,如下所示:

Error: Parse error in 'e2e/definitions/login.js': (1:1): expected:
#EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'const { Given, When, Then } = require('cucumber');'
cucumber-js e2e/features/**/*.feature --require e2e/**/*.js
正在管道步骤中运行的命令如下所示:

Error: Parse error in 'e2e/definitions/login.js': (1:1): expected:
#EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'const { Given, When, Then } = require('cucumber');'
cucumber-js e2e/features/**/*.feature --require e2e/**/*.js
错误引用的login.js文件的开头行是:

const { Given, When, Then } = require('cucumber');
const { Selector } = require('testcafe');
我想知道这是否与nodejs版本的差异有关,因为我在我的机器上运行8.11.2,没有看到这些错误,在Jenkins上我们运行的是10.5.0

有人知道问题出在哪里吗?请给我指出正确的方向


谢谢

您可能会遇到这个问题,因为在
--require
模式之后指定的glob模式没有解析为真实的文件名,但在Jenkins上确实如此。尝试用双引号将
e2e/***/.js
括起来:

Cumber js e2e/features/***.feature——需要“e2e/***.js”

您遇到的错误是小黄瓜解析错误,因此我认为cucumber将步骤定义文件视为小黄瓜文件(功能文件)。我会检查您在本地使用的cucumber js版本与在CI中使用的版本。如果版本不同,则您的CI可能缺少错误修复,或者可能使用了不同版本的CLI

我还强烈建议以与CI相同的方式设置本地环境(相同版本的节点,npm依赖项的固定版本),这为我省去了很多麻烦