在Jenkins Pipeline运行Cypress测试时,如何在邮件正文显示测试用例Pass/Fail?
在Jenkins Pipeline中通过JSON报告显示Cypress测试结果到邮件正文
完全可以通过读取Cypress生成的JSON测试报告,在邮件正文中展示Pass/Fail结果,具体实现步骤如下:
1. 让Cypress生成JSON格式测试报告
运行Cypress时,通过参数指定生成JSON报告及存储路径:
npx cypress run --reporter json --reporter-options "mochaFile=reports/cypress-test-results.json"
2. 在Jenkins Pipeline中读取并解析JSON报告
使用Jenkins自带的readJSON步骤(需先安装Pipeline Utility Steps插件)读取报告文件,提取关键测试数据:
// 读取Cypress生成的JSON测试报告 def cypressTestResults = readJSON file: 'reports/cypress-test-results.json' // 统计测试结果数据 def totalCases = cypressTestResults.tests.length def passedCases = cypressTestResults.tests.count { it.state == 'passed' } def failedCases = cypressTestResults.tests.count { it.state == 'failed' } def overallStatus = failedCases > 0 ? 'FAIL' : 'PASS'
3. 将结果插入邮件正文
借助Email Extension Plugin(emailext步骤)构建自定义邮件内容,把解析出的测试数据动态插入:
emailext( subject: "Cypress自动化测试结果: ${overallStatus}", body: """ <h3>Cypress测试执行汇总</h3> <p>总用例数: ${totalCases}</p> <p>通过用例数: ${passedCases}</p> <p>失败用例数: ${failedCases}</p> ${failedCases > 0 ? '<h4>失败用例详情:</h4><ul>' + cypressTestResults.tests.findAll { it.state == 'failed' }.collect { "<li>${it.title.join(' > ')}</li>" }.join('\n') + '</ul>' : ''} """, to: 'target-email@example.com' )
注意事项
- 确保Jenkins已安装
Pipeline Utility Steps和Email Extension Plugin两个插件 - 确认Cypress生成的JSON文件路径正确,且Jenkins有读取该文件的权限
- 如需展示更详细的失败原因,可进一步解析JSON中
failures字段的内容
内容的提问来源于stack exchange,提问作者Aarthy Vasudevan
相关产品推荐
相关产品推荐

