我在当前项目中正在使用带有typescript的cypress,所以我需要获取已保存的屏幕截图的名称。屏幕快照名称由cypress自动保存,并以describe块中给出的描述开头。
例如
describe('Admin Portal', () => {
it('Login Test', () => {
});
});
屏幕截图将保存为“ 管理门户登录-登录测试(失败).png ”
Cypress.on('test:after:run', (test, runnable) => {
if (test.state === 'failed') {
const screenshotFileName = `${test.title} (failed).png`
addContext({ test }, `assets/${Cypress.spec.name}/${screenshotFileName}`)
}
上面的代码行实际上是在检索 It 块中定义的名称,以及如何获取在 description 块中定义的名称?
答案 0 :(得分:1)
我在console.log("=======>>>", Cypress.mocha.getRunner().suite.title)
部分尝试过beforeEach()
,它在console.log()中向我显示套件标题名称。
因此,您可以添加Cypress.mocha.getRunner().suite.title
并尝试以下代码,让我知道它是否有效:
Cypress.on('test:after:run', (test, runnable) => {
if (test.state === 'failed') {
const screenshotFileName = `Cypress.mocha.getRunner().suite.title (failed).png`
addContext({ test }, `assets/${Cypress.spec.name}/${screenshotFileName}`)
}
})
答案 1 :(得分:1)
尝试这样的事情:
Cypress.on('test:after:run', (test, runnable) => {
if (test.state === 'failed') {
const screenshotFileName = `${Cypress.config('screenshotsFolder')}/${Cypress.spec.name}/${runnable.parent.title} -- ${test.title} (failed).png`
addContext({ test }, screenshotFileName)
}
})