Cypress - 如何获取单个测试的数据,如标题、状态等

Posted

技术标签:

【中文标题】Cypress - 如何获取单个测试的数据,如标题、状态等【英文标题】:Cypress - How to get data of individual test like its title, state etc 【发布时间】:2022-01-15 20:55:34 【问题描述】:

我正在尝试获取有关赛普拉斯中单个测试的数据,例如标题、状态等,以便我可以创建自定义报告器。但是 forEach 中的以下选项都不起作用。它返回未定义,但是当我传递像“abcd”这样的普通字符串时,它会打印在控制台上。那么如何获取测试的属性。

first.spec.js

/// <reference types="cypress" />
  context('Actions', () => 
  
  afterEach(()=> 
    const testData = cy.state('runnable').currentTest;
      cy.task('testOutput', title: testData.title, state: testData.state, fullTitle: testData.fullTitle());

     // also tried 

   // Cypress.on('test:after:run', (test, runnable)=> 
    //cy.task('testOutput', title: runnable.title, state:runnable.state, fullTitle: runnable.fullTitle());
   //);
  );

  it('test 1',()=>
   
    const assets = Cypress.env('assetoverride');
    cy.getVar(assets);
  )
);

插件/index.js

module.exports = (on, config) => 
  on('task', 
    testOutput(title, state, fullTitle)
      console.log(`Test $fullTitle - $state - $title`)
      return null;
    
  );

【问题讨论】:

【参考方案1】:

如果您在本地执行测试,您可以通过运行命令以无忧模式运行它们:

npx cypress run --spec "e2e/integration/NameOfYourTestFile.spec.js" --browser chrome --headless

这样您将在终端中获得包含结果的表格: enter image description here

【讨论】:

以上是关于Cypress - 如何获取单个测试的数据,如标题、状态等的主要内容,如果未能解决你的问题,请参考以下文章

Cypress 如何获取 API 响应数据的长度?

如何在 Cypress.io 中等待 WebSocket STOMP 消息

Cypress web自动化35-cy.exec()执行python命令操作数据库

Cypress web自动化35-cy.exec()执行python命令操作数据库

如何在 cypress 组件测试期间包装 vue 组件?

如何使用 Cypress 测试 AWS Amplify Angular Authenticator 组件?