You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypress与Azure Pipeline中仅重跑失败测试用例

仅重跑失败测试用例的实现方案

本地环境实现

  • 利用测试框架内置功能直接重跑:比如用Pytest时,第一次跑完所有测试后,执行pytest --last-failed就能只运行上一次失败的用例;如果是NUnit,可执行nunit3-console.exe --where "Status == Failed"指定仅运行失败用例。
  • 自定义脚本增强重跑逻辑:写个简单的Shell/PowerShell脚本,先执行全量测试并生成失败用例报告(比如Pytest加--junitxml=failed.xml参数),然后循环解析报告中的失败用例,重复运行直到全部通过或达到预设的重试次数上限。

Azure Pipeline 实现

  • 拆分测试任务,避免全量重试:
    1. 第一个任务执行全量测试,同时生成测试结果报告(比如Pytest指定--junitxml=$(Build.StagingDirectory)/test-results.xml,Visual Studio Test任务勾选发布测试结果选项)。
    2. 添加第二个测试任务,设置运行条件为“仅当第一个测试任务存在失败用例时执行”(在Azure Pipeline中通过condition: failed()或更精确的结果判断配置)。
  • 精准重跑失败用例:
    • 若使用Pytest,通过Cache@2任务缓存.pytest_cache目录,然后在第二个任务中执行pytest --last-failed;也可以用脚本解析junit报告,提取失败用例的全限定名,拼成pytest test_module.py::TestClass::test_method格式的命令直接运行。
    • 若使用Visual Studio Test,通过PowerShell脚本从测试结果文件中提取失败用例的全限定名并存入变量,在第二个任务的“测试筛选条件”中填入FullyQualifiedName~$(FailedTests),实现定向重跑。
  • 注意:不要使用Azure Pipeline自带的任务重试选项,它会重新执行整个任务,导致已通过的用例重复运行。

关键注意点

  • 保证测试用例的独立性,每个用例执行前后都要重置环境、清理数据,避免因依赖残留导致重跑失败。
  • 随机失败的用例建议优先排查根因(如网络波动、资源竞争、异步操作超时),重跑只是临时的兜底方案。

内容的提问来源于stack exchange,提问作者H N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 23:53:18