我有一个功能文件列表和相关步骤定义列表。每个功能文件都涉及网站的某些特定功能。根据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.feature
和night.feature
如何做到这一点?想法?
这个例子使用的是假数据,我的真实场景包括更多的功能和主题,所以不幸的是,将测试拆分到不同的文件夹或使用Cypress标签不是一个有效的选择。
我正在考虑的另一个不有效的想法是在Cypress.env('THEME')
的检测的帮助下,在每个步骤定义Given
、When
和Then
中放入条件词,但显然我不愿意遵循这种方法。
还有别的吗?感谢
正确的答案是标记测试并只运行特定的标记。。。如果存在这样的特征。我相信@mosaad在第二点上是错的;CCD_ 9命令行参数只是根据我的理解向运行添加元数据。它不限制运行哪些规范文件。
如果我是你,我会尽量让你的文件夹结构富有创意。或者,你可以实现这个人的变通方法,这对我来说有点沉重,但可能会完成任务。
您可以将测试拆分为两个文件夹,并只运行文件夹中的文件
cypress run --spec "cypress/integration/daylight/**/*"
或者,您可以使用标签并使用正确的标签运行测试
cypress run --record --tag "daylight"