在Jenkins上运行时,cucumber-js解析错误

问题描述 投票:3回答:2

我正在尝试设置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

错误引用的login.js文件的开头行是:

const { Given, When, Then } = require('cucumber');
const { Selector } = require('testcafe');

我想知道这是否与nodejs版本差异有关,因为我在我的机器上运行8.11.2并且没有看到这些错误,在Jenkins上我们运行10.5.0

有谁知道问题是什么,并指出我正确的方向吗?

谢谢

node.js jenkins jenkins-pipeline cucumberjs testcafe
2个回答
3
投票

可能你有这个问题,因为在--require模式之后指定的glob模式没有解析为真正的文件名,但是在你的Jenkins上它确实如此。尝试用双引号括起e2e/**/*.js cucumber-js e2e/features/**/*.feature --require "e2e/**/*.js"


0
投票

你得到的错误是Gherkin解析错误,所以我认为黄瓜将你的步骤定义文件视为Gherkin文件(特征文件)。我会检查你在本地使用哪个版本的cucumber-js,而不是你在CI中使用的版本。如果版本不同,您的CI可能缺少错误修复,或者可能使用不同版本的CLI。

我还强烈建议您以与CI相同的方式设置本地环境(相同版本的节点,npm依赖项的固定版本),这给我带来了很多痛苦。

© www.soinside.com 2019 - 2024. All rights reserved.