0

目标:将来自 Cypress 自定义命令的更多详细信息添加到生成的 Mochawesome 报告中

我是 Cypress.io 的新手,尤其是 Mochawesome 报告生成。

在创建更简洁的代码并避免重复时,我添加了 custom Cypress.Commands,例如

/// <reference types="Cypress" />

Cypress.Commands.add('sandboxForceFailure', () => {
    cy.visit(Cypress.env('ds_admin_base_url'));
    cy.url({ timeout: 1000 }).should('include', '/admin-dashboard');
});

我目前在使用中遇到的不便Cypress.Commands是,在自定义命令中进行的细粒度 Cypress 调用不包含在 Mochawesome 生成的报告中。

这是 Cypress 上下文的示例,其中包含两个测试,都执行相同的测试。首先使用直接Cypress calls,第二次使用上述自定义Cypress.Commands

context('Sandbox', () => {
   it('Force failure', () => {
      cy.visit(Cypress.env('ds_admin_base_url'));
      cy.url({ timeout: 1000 }).should('include', '/admin-dashboard');
   })

   it('Force failure Custom Command', () => {
      // @ts-ignore
      cy.sandboxForceFailure();
   })
})

测试'Force failure'的 Mochawesome 报告显示所有 Cypress 调用都在测试中执行:

'Force failure'
cy.visit(Cypress.env('ds_admin_base_url'));
cy.url({ timeout: 1000 }).should('include', '/admin-dashboard');

测试'Force failure Custom Command'显示的Mochawesome 报告cy.sandboxForceFailure()被称为,但仅此而已......

'Force failure Custom Command'
// @ts-ignore
cy.sandboxForceFailure();

我希望测试'Force failure Custom Command'显示在自定义赛普拉斯命令中执行的赛普拉斯调用,例如......

'Force failure Custom Command'
// @ts-ignore
cy.sandboxForceFailure();
-----
    cy.visit(Cypress.env('ds_admin_base_url'));
    cy.url({ timeout: 1000 }).should('include', '/admin-dashboard');
-----

以下是用于生成 Mochawesome 报告的 Cypress.io 配置和 NPM 脚本的一些其他详细信息:

文件cypress.json

    "reporter": "cypress-multi-reporters",
    "reporterOptions": {
        "reporterEnabled": "mochawesome",
        "mochawesomeReporterOptions": {
            "reportDir": "cypress/report/json",
            "overwrite": false,
            "html": false,
            "json": true,
            "timestamp": "mmddyyyy_HHMMss"
        }
    },

文件package.json脚本:

    "cy:report:merge": "mochawesome-merge cypress/report/json/*.json > cypress/report/report_bundle.json",
    "cy:report:generate": "marge cypress/report/report_bundle.json --reportFilename report --charts true --reportDir cypress/report",
    "cy:report": "npm run cy:report:merge && npm run cy:report:generate",

非常感谢任何帮助。这种级别的报告细节可能吗?

4

0 回答 0