我正在使用webpack-dev-server和Cypress GUI进行开发工作流程,我希望Cypress在由WDS自动重新加载触发的页面重新加载时自动重新运行/重新启动测试。
现在发生的是,我看到WDS导致页面重新加载,但是Cypress会话停留在它停止的地方。
我似乎找不到办法实现这一目标。我没有看到任何公开(或私有)方式来触发赛普拉斯重新运行当前选择的测试。
答案 0 :(得分:2)
您可以将以下内容添加到cypress/support/index.js
(或spec文件的顶部):
Cypress.on('window:before:load', (win)=>{
const _consoleInfo = win.console.info
win.console.info = function () {
if (arguments[0].includes('App updated.')) {
cy.$$('.restart', top.document).click()
}
return _consoleInfo.apply(win.console, arguments)
}
})
只要您将webpack-dev-server
信息打印到控制台上,此方法就可以工作(我发现Webpack重装行为没有其他钩子)
$('.restart').click()
是触发测试重新运行的一种非常简单的方法
或者,您可以尝试使用此插件,该插件在源文件上设置自己的观察程序,并在检测到更改时重新运行测试:https://github.com/bahmutov/cypress-watch-and-reload