我在 Cypress.io 上遇到了一个问题,我没有看到太多有用的信息。本质上,每当我对代码进行更改(例如,实现新方法、删除旧方法等)并保存时,测试运行程序都会继续执行我的测试文件。但是,它运行更改之前存在的代码。我尝试过实现钩子、消除钩子、每次运行后关闭仪表板、清除应用程序数据;但不确定问题的根源是什么。
对于上下文,我正在使用 Yarn 运行 cypress(
yarn cypress open
打开仪表板)并将我的测试文件保存在 cypress/integration/
中。
仔细检查文件中的这些类型的问题:
我多次遇到同样的问题。清除缓存不起作用。要找到隐藏的错误,要有耐心和系统性:
console.log()
并逐步注释您最后的更改,直到您可以看到该文件已由 cypress 更新。我想知道 cypress CI 上的一些日志消息是否对此发出警告。
我的测试文件
test.js
有:
import MainViewPOM from '../pom/MainViewPOM';
MainViewPOM.js 有:
import DialogPOM from '../DialogPOM';
最后一条路径应该有一个点,而不是两个点。导入在内部失败,没有任何警告我。 Cypress 忽略文件的新版本。
ENOENT: no such file or directory, stat
。我遇到了这个问题,然后对我有帮助的是在每次测试之前清除缓存,因为赛普拉斯似乎默认情况下没有禁用缓存。
我添加了一个自定义命令:
Cypress.Commands.add('clearCache', { prevSubject: false }, () => {
localStorage.clear()
indexedDB.deleteDatabase('cypress')
return true
})
然后我在
beforeEach()
钩子中调用它,以便在每次运行测试之前清除我的缓存:
beforeEach(() => {
cy.clearCache();
});
我希望它对你有用。如果您有任何疑问请告诉我