我在之前的项目中曾经使用过 Cypress 9。 默认情况下,运行时
cypress open
或 cypress open --browser chrome
用于运行所有 React 组件的所有测试。
但是,我第一次在一个尚未进行 e2e 测试的项目上安装 Cypress 10。我添加了测试规范,但我没有看到任何选项来完全运行所有测试。
看来我必须一项一项地运行测试,点击每一个测试。
任何人都可以建议我如何自动运行所有测试吗?
在 Cypress 版本 11.2.0 中,Run All 按钮已恢复。
您需要在
experimentalRunAllSpecs
中将 cypress.config.js
设置为 true。
请参阅配置-端到端测试
在Cypress v10中已被删除,以下是相关变更说明
在 cypress open 期间,“运行所有规范”和“运行过滤规范”的功能已被删除。请在此处留下有关删除此功能的反馈。您的反馈将帮助我们围绕此功能的未来做出产品决策。
登记您的不满的反馈页面是这里
您可以创建一个“桶”规范来运行多个导入的规范。
我不能保证它的工作方式与 v9“运行所有测试”相同,但看不出任何不这样做的原因。
// all.spec.cy.js
import './test1.spec.cy.js' // relative paths
import './test2.spec.cy.js'
...
正如@Constance所说,在v11.20中恢复。
但是如果您想运行测试的预定义子集,这仍然是一种非常方便的技术。
如果 Cypress Test Runner 不是必须的,我建议使用 CLI/Node Cmd 方法
您可以通过
npx cypress run
触发所有测试(失败步骤的视频录制和屏幕截图仍然会保存在相应的文件夹中)以运行所有测试或使用任何其他 cypress 标志来过滤特定的规范文件或浏览器等等
根据反馈讨论,有一个与@Fody的答案相同的解决方法,可以实现与v9相同的结果。另外值得注意的是关于持续集成和更新 1 的部分,其中包含一个修复程序,用于防止此解决方法使用
cypress run
命令产生问题。
目前有解决办法吗?
- 是的。如果您因省略此功能而受到影响,则可以通过 Gleb Bahmutov 在此解释的解决方法实现与 9.x 相同级别的奇偶校验:https://glebbahmutov.com/blog/run-all-specs-赛普拉斯-v10/
- 这仍然会继承与以前的实现相同的问题(这就是它被删除的原因),但它会在某些情况下工作,以前的实现对您的用例来说没有问题
https://github.com/cypress-io/cypress/discussions/21628#discussion-4098510
由于人们使用错误而被删除。
测试运行器用于调试单个测试。但通过运行所有测试,性能很快就会成为问题并使整个套件崩溃。
运行所有测试只能从 CLI 执行。
来源