问题标签 [cypress-cucumber-preprocessor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1823 浏览

cypress-cucumber-preprocessor - Cypress + Cucumber - 相同的步骤定义

假设我有 Feature1.feature 和 Feature2.feature 文件。首先,我有步骤:

在第二个文件中,我有:

在 step1.js 文件中的 step_definitions 文件夹下:

在 step_definitions 文件夹下,我们有多个 js 文件(由每个测试用例分隔)。那么对于第二种情况,在 step2.js 中我是否需要再次定义 Open app 步骤?:

或者它在steps_definition下的所有文件中全局查找?那么我只需要开始:

但是如果多个用户正在处理测试用例并且他们不小心在不同的文件中定义了相同的步骤,例如

在一个文件中

在其他文件中

正如我所读到的,每个场景都应该是独立的。但是,如果每个场景都有相同的步骤?我们只需要在一个文件中定义它们一次。但如果其他人正在处理该文件,它可能会破坏我的场景。

0 投票
2 回答
1630 浏览

javascript - 赛普拉斯自定义命令无法被 PhpStorm IDE 识别,但在测试运行程序中工作

我在 Cypress 测试中使用 JavaScript 文件。

commands.js我创建了一个自定义命令:

当我在测试运行器中运行测试时,这工作正常。唯一的问题是,我的 IDE (PhpStorm) 无法识别该命令。

未解析的函数或方法 selectDropdown()

如何“告诉”IDE,这样的命令存在?

更新:

index.d.ts在支持文件夹下创建了一个文件(但是我只使用赛普拉斯的 JS 文件,我已经index.js有了)。

在那个 ts 文件中我放了:

现在该cy.selectDropdownValue命令已在 IDE 中被识别,并且在测试运行程序中似乎工作正常,但存在一些问题:

  1. 我最好避免创建一个新的 TypeScript 文件,因为我已经index.js有了,而且我在项目中只使用 JS 文件

  2. 声明命名空间 - 不允许使用“命名空间”和“模块”(无命名空间)——这是一个 Lint 警告,因此需要以某种方式替换它

  3. 未使用的接口可链接。不确定我是否需要Chainable那里,因为它未使用,也在这里selectDropdownValue(dropdown, value): Chainable<(string)>;

谁能帮忙,如何通过 IDE 以 JavaScript 方式而不是 TypeScript 识别自定义命令?

0 投票
0 回答
246 浏览

javascript - 如何使用嵌套循环 (.each) 在 Cypress 中迭代 HTML 表

我必须迭代一个包含列的表:参考号、用途和按钮。我想检查我的参考号是否 == 所需的文本和目的 == 所需的文本,然后单击按钮。现在的问题是它只检查第一行,而不是迭代其他行。

下面是我正在尝试的代码:

0 投票
0 回答
135 浏览

cucumber - 如何使用 Cypress-tags 在 circle-ci orb 上运行 Cypress 测试

我正在尝试使用cucumber 插件和官方 Circle-ci Orb 使用 Cypress 运行一个小型测试集合。

我一直在阅读文档,并且我已经让它们在本地运行而没有问题。我用来在本地运行它们的脚本是这个:

"test:usa": "cypress-tags run --headless -b chrome -e TAGS='@usa'"

*注意cypress-tags命令和TAGS选项。

对于 CI,我使用官方的Circle-ci Orb并进行如下配置:

正如您所读到的,我想提升 2 台机器,在其中划分我的功能文件,将标签设置为“on-pr”,并使用 ci-build-id 将运行分组在“2x-chrome”下。

问题是官方 Orb 使用的cypress run命令不按标签过滤场景,所以在这里没有用。我的选择是:

  1. 使用 orb 中的command参数来调用所需的脚本,就像我在本地做的那样:

command: npm run test:usa

我对这个选项的问题是并行配置没有按预期工作,所以我放弃了它。

  1. 我试图在 Circle-ci 执行器中将TAGS 参数作为 env var 传递,以查看 Orb 是否能够看到它,但它没有用,因为 Orb 不使用cypress-tags runbut cypress run

在这一点上,我的问题是,是否有解决方法(在 Circle-ci orb 中使用 cypress-tags)或者我应该选择不同的测试方式?

提前致谢

0 投票
2 回答
1962 浏览

javascript - 赛普拉斯从 json 加载数据 - 之前的夹具

我正在尝试通过赛普拉斯中的夹具从 json 文件中检索一些数据,但这些数据根本无法识别。

})

控制台输出用户,这是有效的。

但在那之后我有一个步骤:

这里的数据是未定义的。

我也尝试在里面设置before

this.data = data但没有帮助。我也尝试使用beforeEach但没有成功。

0 投票
1 回答
341 浏览

junit - 如何将黄瓜功能文件测试添加到 XML 报告文件

我正在使用带有 'cypress-junit-reporter' 的 cypress 将测试结果输出到 XML 文件。我最近调整了运行黄瓜功能文件的设置,但我希望将完整的功能文件文本输出到 XML 结果文件,而不是目前只是拉入场景。我怎样才能做到这一点?

赛普拉斯.json

输出 XML 文件

测试特征

0 投票
1 回答
477 浏览

cypress - Cypress-cucumber-preprocessor 未运行测试和错误:“缺少步骤实现”

学习者并不断收到“步骤实施缺失:我打开 Google 页面”错误。

这是我的回购https://github.com/PatoDeVille/TsBDDtest.git

检查了这里的文档https://www.npmjs.com/package/cypress-cucumber-preprocessor#cypress-configuration一切似乎都还好。

我正在关注的教程是https://www.youtube.com/watch?v=ZM7bzu0zIT8

还检查了Cypress.io 和 Cucumber.io 测试集成中的问题,缺少步骤实现:并且错误仍然存​​在

/package.json devDependencies

/cypress.json

/.cypress-cucumber-preprocessorrc.json

0 投票
1 回答
68 浏览

cypress - 使用赛普拉斯自动化的 URLS 重定向

我在场景大纲中传递了 100 多个 URL 路径(旧版),我想点击其中的每一个并重定向到新路径(新)。我通过了如下代码;

我在我的 stepDef 文件中通过了以下内容

并且运行成功。

但我想使用响应代码 301 作为断言,而不是仅依赖于 expectedUrl。

请问我该怎么做?

0 投票
1 回答
216 浏览

javascript - 如何使用赛普拉斯将当前时间设置为未来时间?

我正在使用 cypress 自动倒计时内容块,我需要使用 Cypress 测试重复场景。在示例中,

在开始 - 天 - 00 | 小时 - 00 | 分钟 - 00

我需要验证,一小时后,将开始倒计时(天 - 23 | 小时 - 59 | 分钟 - 59)

我不能使用硬编码的等待时间,所以我尝试了以下 cypress 脚本,但它不起作用。

这里面有什么穿的吗?或者帮我找到一个好的解决方案。

0 投票
2 回答
1317 浏览

cypress - Cypress-cucumber - 如何将步骤存储在与功能相同的目录中

我试图弄清楚如何在与功能文件相同的目录中停止我的步骤文件。我使用了 cypress-cucumber 页面中的基本设置教程。

我的问题是这个。

我有一个功能文件

集成/功能/ test.feature

为了让测试运行,我必须将我的步骤文件放在 integration/feautres/ test /test.js 中

我想要做的是将我的步骤文件存储在诸如 integration/feautres/test.js 之类的功能旁边

是否有可能做到这一点?