如何在Jenkins上自动重新运行失败的TestNG测试

时间:2018-05-08 02:29:59

标签: java maven selenium jenkins testng

我正在为企业环境构建Selenium自动化套件的最后阶段。它配置了在Jenkins上运行的TestNG。该套件主要包含UI测试。作为这种设置的典型,测试是不稳定的,并且在我们的时间线内重新进行测试以减少对UI自动化的依赖是不可行的。

鉴于我已经在进行代码优化,我想设置一些可以自动重新运行失败测试的内容,以最大限度地减少手动调查失败的需要。我已经调查了几个选项,但没有一个适合我们的设置:

  • 理想的解决方案是使用Maven Surefire插件,该插件具有rerunFailingTestsCount属性,但此功能仅支持JUnit(我们使用TestNG)
  • Jenkins Flaky Test Handler插件是由同一个人开发的^并且似乎依赖于JUnit

对于可以使用我们的设置的解决方案的建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

对于失败的testNG测试,失败报告存储为testngfialed.xml。将其添加到您的XML Suite中,这样的事情应该有效:

<suiteXmlFiles>
  <suiteXmlFile>src/test/<your path>.../testng.xml</suiteXmlFile>
  <suiteXmlFile>target/surefire-reports/testngfailed.xml</suiteXmlFile>
</suiteXmlFiles>

这可能是:Run testngfailed.xml via Jenkins

答案 1 :(得分:0)

注意:此响应替换了主持人删除的先前响应。有关如何定义和连接TestNG重试分析器的详细信息,请参阅下一个响应。我更倾向于我的回复来跟随那个,但它反而出现在这里。

除了下面显示的TestNG套件文件方法,您还可以通过服务加载程序配置文件指定重试分析器。 http://testng.org/doc/documentation-main.html#listeners-service-loader

无论项目的定义方式或运行方式如何,此ServiceLoader机制都具有按预期工作的优势。

相关问题