是否可以动态跳过其中一个Cypress测试——即一个功能文件及其步骤定义



我有一个功能文件列表和相关步骤定义列表。每个功能文件都涉及网站的某些特定功能。根据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标签不是一个有效的选择。

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

还有别的吗?感谢

正确的答案是标记测试并只运行特定的标记。。。如果存在这样的特征。我相信@mosaad在第二点上是错的;CCD_ 9命令行参数只是根据我的理解向运行添加元数据。它不限制运行哪些规范文件。

如果我是你,我会尽量让你的文件夹结构富有创意。或者,你可以实现这个人的变通方法,这对我来说有点沉重,但可能会完成任务。

您可以将测试拆分为两个文件夹,并只运行文件夹中的文件

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

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

cypress run --record --tag "daylight"

相关内容

最新更新