我有一个使用TestNG构建的自动化测试套件,并希望添加自动重试以消除一些不稳定性(我知道隐藏错误可能导致问题在路上,这在这一点上大多只是一个概念证明)但我'在最终的倾城报告中,没有重新运行的问题。
基本上我按照this question/answer中的步骤进行操作但是最后一部分,关于添加第二个监听器以过滤掉结果要么不能按照我实现的方式工作,要么在给定时不起作用每次重试都会失败。
我在上面链接的答案中详细介绍了3个类:
public class Retry implements IRetryAnalyzer {}
public class RetryListener implements IAnnotationTransformer {}
public class TestListener implements ITestListener {}
testng-run.xml
中的所有听众都是这样的:
<listeners>
<listener class-name="com.org.qa.automation.transformers.FrameworkTransformer"></listener>
<listener class-name="com.org.qa.automation.suite.utils.RetryListener"></listener>
<listener class-name="com.org.qa.automation.suite.utils.TestListener"></listener>
</listeners>
我将最大重试计数器设置为2.
当我运行完整套件时会发生的情况是,如果测试失败,它会再次重试两次(最多运行3次),然后每次失败都会失败。
我遇到的问题是,在这种情况下,结束报告将显示相同的测试运行3次,并且运行的总测试用例将考虑重新考虑覆盖率%。
如何对结果进行过滤,以便每次只在出现的Allure报告中出现一次测试失败? 注意:我还需要在报告中显示跳过和损坏的测试。