Cypress无障碍测试高级解决方案
拦截拉取请求与设置策略
Cypress无障碍测试报告基于测试执行期间上传的测试工件,在Cypress Cloud服务器端生成。这确保不会对您的Cypress测试运行产生性能影响。
使用Results API
Cypress无障碍测试Results API允许您在测试运行后获取无障碍测试结果,支持基于特定无障碍标准拦截拉取请求或触发警报等工作流。这需要在CI流水线中添加专门的无障碍验证步骤。通过Cypress辅助函数,您可以在CI构建上下文中自动获取相关测试运行的报告。以下是在GitHub Actions中检测到无障碍违规时拦截拉取请求的示例:

实现状态检查
Results API提供完全灵活性来分析结果并采取定制操作。它还可以与拉取请求上的状态检查集成。以下是通过无障碍验证步骤的示例:

在验证步骤中定义策略
Results API文档详细介绍了API功能。以下是一个简化示例,展示如何强制执行"无新增失败无障碍规则"策略:
const { getAccessibilityResults } = require('@cypress/extract-cloud-results')
// 已知失败规则列表
const rulesWithExistingViolations = [
'button-name',
// 按需添加更多规则
]
// 获取无障碍测试结果
getAccessibilityResults().then((results) => {
// 识别新增规则违规
const newRuleViolations = results.rules.filter((rule) => {
return !rulesWithExistingViolations.includes(rule.name)
})
if (newRuleViolations.length > 0) {
// 检测到新违规时触发相应操作
throw new Error(
`检测到${newRuleViolations.length}条新增规则违规,必须解决这些问题。`
)
}
})
通过检查结果并定制响应,您可以最大程度控制如何处理无障碍违规问题。利用CI环境上下文(如标签)来微调对特定无障碍测试结果的响应。