赛普拉斯 - addContext()保留先前的失败计数并将其添加到mochawesome报告中的每个'it'场景中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了赛普拉斯 - addContext()保留先前的失败计数并将其添加到mochawesome报告中的每个'it'场景中相关的知识,希望对你有一定的参考价值。

在我的mochawesome-report中,addContext()保留了先前的计数并将其添加到每个'it'场景中,如果测试用例失败,我将'someValue'添加为测试用例的上下文。因此,如果第二个测试用例失败,那么值将被打印两次。

以下是快照:

enter image description here

以下是我的afterEach()方法:

afterEach(function () 
    if (this.currentTest.state === 'failed')     
      var test = this.currentTest

      Cypress.on('test:after:run', (test) => 

        addContext( test , 
          title: 'Failing Screenshot: ' + '>> screenshots/' + Cypress.spec.name + '/' + test_name + ' -- ' + test.title + ' (failed)' + '.png <<',
          value: 'screenshots/' + Cypress.spec.name + '/' + test_name + ' -- ' + test.title + ' (failed)' + '.png'
          //value: 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAABkCAYAAAAVORraAAACH0lEQVR'
        )
      );
     
  )
答案

得到了我从https://docs.cypress.io/api/events/catalog-of-events.html#Cypress-Events看到的东西

enter image description here

虽然我将不得不删除Cypress.on('test:after:run', afterEach()

所以我必须在每个spec文件中指定Cypress.on('test:after:run',

const spec_name = this.title

  Cypress.on('test:after:run', (test) => 

    if (test.state === 'failed') 
      addContext( test , 
        title: 'Failing Screenshot: ' + '>> screenshots/' + Cypress.spec.name + '/' + spec_name + ' -- ' + test.title + ' (failed)' + '.png <<',
        value: 'screenshots/' + Cypress.spec.name + '/' + spec_name + ' -- ' + test.title + ' (failed)' + '.png'
      )
    
  );

这有点推迟,最好把这整个代码放在support/command.js

另一答案

您可以添加以下代码:

const addContext = require('mochawesome/addContext');

Cypress.on('test:after:run', (test, runnable) => 
  if (test.state === 'failed') 
    addContext(test,  title: "Screenshot", value:`../cypress/screenshots/$Cypress.spec.name/$runnable.parent.title -- $test.title (failed).png` )
  
)

在“support / index.js”中,您将在报告中找到失败测试的屏幕截图

以上是关于赛普拉斯 - addContext()保留先前的失败计数并将其添加到mochawesome报告中的每个'it'场景中的主要内容,如果未能解决你的问题,请参考以下文章

赛普拉斯,页面内容和变量

赛普拉斯代理4Mbit异步快速SRAM芯片CY7C1041GN30-10ZSXIT

赛普拉斯可以运行在赛普拉斯文件夹之外导入的测试文件吗?

赛普拉斯:我们如何在赛普拉斯中使用不记名令牌编写 GET 请求?

赛普拉斯/GitLab CI/CD 集成 - 赛普拉斯不会在无头模式下启动

赛普拉斯:测试元素是不是不存在