Cypress 10 - 如何一次性运行所有测试?

问题描述 投票:0回答:5

我在之前的项目中曾经使用过 Cypress 9。 默认情况下,运行时

cypress open
cypress open --browser chrome
用于运行所有 React 组件的所有测试。

但是,我第一次在一个尚未进行 e2e 测试的项目上安装 Cypress 10。我添加了测试规范,但我没有看到任何选项来完全运行所有测试。

看来我必须一项一项地运行测试,点击每一个测试。

任何人都可以建议我如何自动运行所有测试吗?

enter image description here

cypress
5个回答
44
投票

在 Cypress 版本 11.2.0 中,Run All 按钮已恢复。

您需要在

experimentalRunAllSpecs
中将
cypress.config.js
设置为 true。

请参阅配置-端到端测试


39
投票

在Cypress v10中已被删除,以下是相关变更说明

在 cypress open 期间,“运行所有规范”和“运行过滤规范”的功能已被删除。请在此处留下有关删除此功能的反馈。您的反馈将帮助我们围绕此功能的未来做出产品决策。

登记您的不满的反馈页面是这里


您可以创建一个“桶”规范来运行多个导入的规范。

我不能保证它的工作方式与 v9“运行所有测试”相同,但看不出任何不这样做的原因。

// all.spec.cy.js

import './test1.spec.cy.js'    // relative paths
import './test2.spec.cy.js'
...

正如@Constance所说,在v11.20中恢复。

但是如果您想运行测试的预定义子集,这仍然是一种非常方便的技术。


4
投票

如果 Cypress Test Runner 不是必须的,我建议使用 CLI/Node Cmd 方法

您可以通过

npx cypress run
触发所有测试(失败步骤的视频录制和屏幕截图仍然会保存在相应的文件夹中)以运行所有测试或使用任何其他 cypress 标志来过滤特定的规范文件或浏览器等等


1
投票

根据反馈讨论,有一个与@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


-2
投票

由于人们使用错误而被删除。

测试运行器用于调试单个测试。但通过运行所有测试,性能很快就会成为问题并使整个套件崩溃。

运行所有测试只能从 CLI 执行。

来源

© www.soinside.com 2019 - 2024. All rights reserved.