【发布时间】:2018-08-10 17:14:22
【问题描述】:
我在我的 Firebase Web 应用程序上使用 Cypress 进行 e2e 测试,我希望测试运行始终从未经身份验证的状态重新开始。
如何防止 Firebase 身份验证会话在 e2e 测试运行中持续存在?
目前,我在测试结束时调用了logout() 函数。但如果在此之前测试失败,logout() 通常不会被调用,我必须在下一次测试运行之前手动注销。
【问题讨论】:
-
我对firebase一无所知,但如果它将身份验证会话存储为cookie,您可以在
beforeEach()中调用cy.clearCookie("nameOfCookie") -
不幸的是,这不起作用。无论如何,赛普拉斯在每次测试运行开始时都会自动转储所有 cookie 和本地存储。 Firebase 必须使用其他机制来保持状态。
-
它应该在测试之间吹走 cookie,但我发现它不可靠并且不得不在我的测试中添加该调用以重置会话。祝你好运!
-
如果
logout()为您工作,请致电afterEach(),请参阅this document。 -
@RichardMatsen 您链接到的文档明确指出开发人员不应该在
afterEach()中进行清理,然后列出了原因。因此,我正在努力寻找正确的实施方式。
标签: firebase firebase-authentication e2e-testing cypress angular-e2e