我有一组三个e2e测试,我正在从Cypress 8.7转换到10.3,最终目标是能够利用Cypress的组件测试。
所有测试都作为一个组和单独的规格(通过 --规格<;路径>;
)在8.7中。文章源自玩技e族-https://www.playezu.com/196047.html
在转换到10.3之后,我有一个规范,它调用一个公共命令,该命令单击一个按钮(扩展将其添加到页面中),该按钮触发其侦听器并调用 chrome.runtime.发送消息
带有打开扩展UI的消息。在这种特殊情况下,内容脚本处理自己的消息(这在技术上是多余的),但由于还有其他情况与后台脚本通信,因此我们使用相同的方法 发送消息
要求一致性(这在实际的Chrome环境中每次都有效)。为了便于实现这一点,后台脚本有一个监听器,它可以有效地将消息发送回发送选项卡,而不直接处理消息。文章源自玩技e族-https://www.playezu.com/196047.html
- 规格1:始终有效
- 规格2: 总是 单独运行时与
--规格
和 从不 当所有测试一起运行时,此功能有效 - 规格3:与规格2相同
我不认为这是一个比赛条件,因为没有多少 等一下
这是成功的。我可以验证内容脚本中注册事件的部分 chrome.runtime.onMessage.addListener
在每个等级库开始时运行(单独运行和一起运行)。但是,它在单击按钮时从不运行(即使暂停并手动单击)。文章源自玩技e族-https://www.playezu.com/196047.html
我为测试设置了扩展清单,只匹配cypress访问的URL,并将其与 all_ frames:真
,导致扩展按钮仅显示在内容窗口中,而不是整个Cypress chrome窗口中。登录中 文件
在监听器注册和单击监听器时,都会记录同一个文档,因此我认为这不是跨框架问题。文章源自玩技e族-https://www.playezu.com/196047.html
根据来自后台脚本的可用日志记录,我的结论是它实际上停止了运行(消息处理程序开头的断点不再触发)。然而,没有任何迹象表明为什么会这样。文章源自玩技e族-https://www.playezu.com/196047.html
如果我将其他规范中的所有测试放在一个规范中,该调用将按预期工作(尽管测试仍然失败,可能是由于规范之间清除了其他状态)。我可以做些什么来找出为什么Cypress 10.3中的后台脚本在两个规范之间停止运行?文章源自玩技e族-https://www.playezu.com/196047.html
最后一点需要注意的是,后台脚本中存在一些未捕获和忽略的错误。我正在努力清理这些测试,但尽管如此,这些测试在过去一直都是有效的(而且在运行时每个规范都是单独运行的),所以我很茫然。文章源自玩技e族-https://www.playezu.com/196047.html
软件测试功能测试岗位介绍文章源自玩技e族-https://www.playezu.com/196047.html 文章源自玩技e族-https://www.playezu.com/196047.html