Cypress 运行旧代码,而不是运行更新的代码更改

Cypress runs old code instead of running updated code changes

提问人:erik-rt 提问时间:9/24/2020 最后编辑:jonrsharpeerik-rt 更新时间:5/25/2023 访问量:1544

问:

我遇到了一个问题 Cypress.io 我没有看到太多有用的信息。从本质上讲,每当我对代码进行更改(例如实现新方法、删除旧方法等)并保存时,测试运行程序都会继续执行我的测试文件。但是,它运行更改之前存在的代码。我尝试过实现钩子,消除钩子,每次运行后关闭仪表板,清除应用程序数据;不确定问题的根源是什么。

作为上下文,我正在使用 Yarn(打开仪表板)运行 cypress,并将我的测试文件保存在 .yarn cypress opencypress/integration/

节点.js 柏树 纱线

评论

0赞 Rsaleh 10/12/2021
你找到解决方案了吗?我有同样的问题。
0赞 CJ Kepinsky 1/24/2022
节点 14.x 上的类似问题,Cypress 6.2.1。这样做: Cypress.automation( 'remote:debugger:protocol', { command: 'Network.setCacheDisabled', params: { cacheDisabled: true } }) 没有帮助。
1赞 NANfan 2/6/2023
@estastepe 你们项目的目录结构是怎样的?有些东西可能在不同的时间加载。是否可以共享一些代码来帮助重现该问题?我不相信我遇到了这个问题,但很高兴尝试通过一些代码更改进行复制。杀死和重新踢柏树可以接受新代码吗?
0赞 Atul KS 12/20/2023
请关注 Cypress runner 正在运行的终端。它提供了有关在Cypress runner中显示的所有信息。

答:

-1赞 Valeriia 5/25/2023 #1

我遇到了这个问题,然后帮助我的是在每次测试之前清除缓存,因为似乎 Cypress 默认情况下没有禁用缓存。

我添加了一个自定义命令:

Cypress.Commands.add('clearCache', { prevSubject: false }, () => {
  localStorage.clear()
  indexedDB.deleteDatabase('cypress')
  return true
})

然后我在 beforeEach() 钩子中调用它,以便在每次运行测试之前清除我的缓存:

 beforeEach(() => {
  cy.clearCache();
});

我希望它对你有用。如果您有任何问题,请告诉我