0

我有一个功能文件列表和相关步骤定义的列表。每个功能文件都指的是网站的某些特定功能。根据网站主题中定义和代表的一些环境变量,由于缺少某些特定主题的功能package.json,我可能需要完全跳过一些功能文件(显然还有它们的步骤定义)。

给出一些代码示例:

  "test:cy:run:daylight": "PORT=9000 CYPRESS_THEME=daylight cypress run",
  "test:cy:run:darkness": "PORT=9001 CYPRESS_THEME=darkness cypress run",

功能文件列表:

daylight.feature
afternoon.feature
evening.feature
night.feature

与相关定义:

daylight.spec.js
afternoon.spec.js
evening.spec.js
night.spec.js

因此,如果CYPRESS_THEME=darkness我想完全从我的测试过程中跳过功能evening.featurenight.feature

怎么做?想法?

这个例子是假数据,我的真实场景包括更多的功能和主题,所以不幸地将测试拆分到不同的文件夹或使用 Cypress 标签不是一个有效的选择。

我正在考虑的另一个效率不高的想法是在每一步定义中放置条件GivenWhenThen在检测的帮助下,Cypress.env('THEME')但显然我不想遵循这种方法。

还要别的吗?谢谢

4

2 回答 2

0

您可以将测试拆分为 2 个文件夹并仅运行此文件夹中的文件

cypress run --spec "cypress/integration/daylight/**/*"

或者您可以使用标签并使用正确的标签运行测试

cypress run --record --tag "daylight"
于 2020-12-22T08:20:00.843 回答
0

正确的答案是标记测试并只运行特定的标签......如果存在这样的功能。我相信@mosaad 在他的第二点上是错误的;命令行参数仅根据--tag我的理解将元数据添加到运行中。它不限制运行哪些规范文件。

如果我是你,我会试着用你的文件夹结构来创造。或者,您可以实施此人的解决方法,这对我来说似乎有点繁重,但可能会完成工作。

于 2020-12-22T17:57:18.387 回答