Cypress extension background在等级库之间停止工作

杨伟明
杨伟明
订阅者
278
文章
0
粉丝
测试交流评论128字数 714阅读2分22秒阅读模式
摘要我有一组三个e2e测试,我正在从Cypress 8.7转换到10.3,最终目标是能够利用Cypress的组件测试。 所有测试都是作为一个团队进行的,并且。。。

我有一组三个e2e测试,我正在从Cypress 8.7转换到10.3,最终目标是能够利用Cypress的组件测试。

所有测试都作为一个组和单个规范(通过 --规格(&lt);路径(&gt);)8.7。文章源自玩技e族-https://www.playezu.com/189109.html

在转换到10.3版本后,我有一个规范,它调用一个公共命令,该命令单击一个按钮(扩展添加到页面中),该按钮启动其侦听器并调用 chrome.runtime.发送消息 用一条消息打开扩展UI。在这种特殊情况下,内容脚本正在处理自己的消息(这在技术上是多余的),但由于还有其他情况与背景脚本通信,因此我们使用相同的方法 发送消息 呼吁一致性(这在实际的Chrome环境中每次都有效)。为了便于实现这一点,后台脚本有一个监听器,它可以有效地将消息发送回发送选项卡,用于它不直接处理的消息。文章源自玩技e族-https://www.playezu.com/189109.html

  • 规范1:始终有效
  • 规范2: 总是 单独运行时工作 --规范从不 所有测试一起运行时有效
  • 规范3:与规范2相同

我不认为这是一个比赛条件,因为没有多少 cy.等待() 取得了成功。我可以验证内容脚本中注册事件的部分 chrome.runtime.onMessage.addListener 在每个等级库的开头运行(单独运行和一起运行)。但是,它在单击按钮时从不运行(即使在暂停并手动单击时)。文章源自玩技e族-https://www.playezu.com/189109.html

我为测试设置了扩展清单,只匹配cypress访问的URL,并将其与 所有_帧:true,导致扩展按钮仅显示在内容窗口中,而不是整个Cypress chrome窗口。登录中 文件 在监听器注册和点击监听器都记录了同一个文档,所以我认为这不是跨框架问题。文章源自玩技e族-https://www.playezu.com/189109.html

根据来自后台脚本的可用日志记录,我的结论是它有效地停止了运行(消息处理程序开始处的断点不再触发)。然而,没有任何迹象表明这可能是为什么。文章源自玩技e族-https://www.playezu.com/189109.html

如果我将这些其他规范中的所有测试放在一个规范中,则该调用会按预期工作(尽管测试仍然失败,可能是由于在规范之间清除了一些其他状态)。我可以做些什么来找出为什么Cypress 10.3中的后台脚本在不同的规范之间停止运行?文章源自玩技e族-https://www.playezu.com/189109.html

最后一点需要注意的是,背景脚本中存在一些未捕获和忽略的错误。我正在努力清理这些,但尽管如此,这些测试在过去一直有效(并且在运行每个规范时都是单独运行的),所以我不知所措。文章源自玩技e族-https://www.playezu.com/189109.html

电脑硬件测试软件文章源自玩技e族-https://www.playezu.com/189109.html 文章源自玩技e族-https://www.playezu.com/189109.html

 
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证