如何避免Cypress中修改JSON数据导致服务器重新加载?
解决Cypress更新JSON文件触发服务器重载的问题
移动测试数据文件到非监听目录
开发服务器通常只会监听源码目录(比如src/),把你的test.json移到Cypress专属的目录下,比如cypress/fixtures/或者cypress/temp/,这样文件修改不会触发服务器重载。
读取和写入的代码调整为:// 读取 const testData = require('../cypress/fixtures/test.json') // 写入 cy.writeFile('../cypress/fixtures/test.json', obj)修改开发服务器的监听排除规则
如果不想移动文件,直接在开发服务器配置里忽略这个JSON文件的变化。- Webpack配置示例:
module.exports = { watchOptions: { ignored: ['../test.json'] // 根据你的文件实际路径调整 } } - Vite配置示例:
export default defineConfig({ server: { watch: { ignored: ['**/test.json'] } } })
- Webpack配置示例:
改用Cypress的
cy.readFile动态读取
放弃用Node的require预加载文件,改用Cypress内置的cy.readFile在测试运行时读取最新内容,这种方式不仅能避免模块缓存问题,还能减少触发服务器监听的概率(尤其是文件在Cypress目录下时):// 替换原来的require读取 cy.readFile('../test.json').then(testData => { // 在这里处理test数据,比如断言、修改等 }) // 写入依然用cy.writeFile cy.writeFile('../test.json', updatedObj)
内容的提问来源于stack exchange,提问作者Srinjay
相关产品推荐
相关产品推荐

