目标:将来自 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",
非常感谢任何帮助。这种级别的报告细节可能吗?