Cypress正在向失败的测试添加上下文



我想通过获取一些本地存储数据并记录这些数据来为每次失败添加一些上下文。。但不太确定我该怎么做

在index.ts中,我添加了

Cypress.on('fail', (error, runnable) => {})

我在那里做const user = localStorage.getItem('user');并尝试记录它,但现在运气好。。我想我需要异步获取它,但无法使它工作:/

使用.log()的同步版本。

我猜在捕获失败事件之前,队列将停止运行。

Cypress.on('fail', (error, runnable) => {
const user = localStorage.getItem('user')
Cypress.log({name: 'User', message: user})
})
it('', () => {
localStorage.setItem('user', 'my-user')
expect(1).to.eq(2)
})

我实际上是通过在support/index.ts文件中这样做的。。。

Cypress.on('fail', (error) => {
const asyncLocalStorage = {
getItem(key) {
return Promise.resolve().then(function () {
return localStorage.getItem(key);
});
},
};
asyncLocalStorage.getItem('state').then((localStorageState) => {
const state = JSON.parse(localStorageState);
Cypress.log({
name: error.name,
message: error.message,
consoleProps: () => ({
'User Id': state?.user?.id,
members: state?.members,
message: error.message,
stack: error.stack,
}),
});
});
throw error;
});

最新更新