Cod*_*abe 2 javascript cypress cypress-session
在最新版本的 Cypress 中,Cookie 保留已被弃用,因此我希望使用 cy.session。但是,我无法让它在多个测试中工作,因为 cy.session 需要位于测试“it”内,这是我当前如何设置测试的示例。
beforeEach(() => {
Cypress.Cookies.defaults({
preserve: /somecookie|someOtherCookie|AnotherCookie/
})
it('Navigate to URL', () => {
performance.NavigateToUrl(URL);
});
it('Login - Username/Pass', () => {
performance.LoginUserPass();
});
it('Navigate Order Page', () => {
performance.Orderpage();
});
//And so on............
Run Code Online (Sandbox Code Playgroud)
欢迎任何帮助和建议,因为我真的不想重写测试结构,因为我创建了一份关于当前输出/设计的报告。
在所有测试中保留会话
通过最近的变化,赛普拉斯正在尝试更多地“强制”测试隔离,而您通过跨不同块的依赖来违背他们的最佳实践it()。
更好的方法是根据上下文进行结构
context('before logging in', () => {
it('Can navigate to home page', () => {
...
})
it('Can log in', () => {
...
})
})
context('after logging in', () => {
beforeEach(() => {
cy.session('login', () => {
// do login via cy.request()
// preserve all browser login data such as cookies, localstorage
})
})
it('Can use order page', () => {
...
})
})
Run Code Online (Sandbox Code Playgroud)
测试隔离标志
页面上有一条注释cy.session()表明您可以关闭测试隔离,但 IMO 中的段落有点模糊
当启用 testIsolation 时,该页面会在设置前清除;当 testIsolation 禁用时,该页面不会被清除。
无论 testIsolation 配置如何,所有域中的 Cookie、本地存储和会话存储在安装程序运行之前始终会被清除。
因此,值得尝试设置- 但根本testIsolation: false不要调用。cy.session()
| 归档时间: |
|
| 查看次数: |
2533 次 |
| 最近记录: |