如何获得在describe块中输入的描述? (打字稿)

时间:2019-10-23 18:47:18

标签: javascript typescript ui-automation cypress

我在当前项目中正在使用带有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 块中定义的名称?

2 个答案:

答案 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}`)
}
})

enter image description here

答案 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)
}

})