我看网上说实现 IRetryAnalyzer 类,然后配置在测试用例上。
可我的测试用例是参数化的,一个@Test里面一堆用例,用了上面的方法后,我失败一条就重跑所有参数化的用例,这可该咋整?
解决了,花了至少两天,有点墨迹,说下思路吧。 开始就是百度,发现有人说 testng 版本会对执行结果有影响,就更新了他说的版本, 仍然无效。 又看一个帖子说,他在官网(GITHUB)的 ISSUE 里看到了自己的问题,然后更新到了对应解决的版本就好了。 我也效仿,在 issue 里搜关键词 “retried",发现了一个跟我基本一样的问题,这个问题在 7.8.0 版本中得到修复。 我就更新到该版本,再执行有 dataprovider 的测试用例失败时,只会重试失败的用例,而不会重试所有。 所以最终解决方法是:去官网修改 BUG ISSUE,然后更新对应版本。
我的方案是把失败的用例(包括用例中的所有步骤)记录下来,套件执行完毕后再把失败的用例组成一个新的 suite 重新执行。最后出报告时可以把几轮测试的结果融合起来一起发,也可以单独发每一轮的结果
@Test 换 @RepeatedIfExceptionsTest
大佬方法可以,一语惊醒梦中人