testNG实现test失败后重复执行,
test失败自动执行大大提高测试结果的准确性,
1、修改testNG源码实现test失败自动执行,
首先获取testng的源码,
获取源代码,构建过程: $ git clone git://github.com/cbeust/testng.git
然后修改src/main/java/org.testng/SuiteRunner.java文件,
private void runTest(TestRunner tr) { int reRunTimes = 2;//失败执行的次数 tr.run(); while ((reRunTimes !=0) && (tr.getFailedTests().size() !=0)){//判断test是否成功和运行次数 suiteResults.put(tr.getName(),sr); suiteResults.remove(tr.getName()); tr.run(); reRunTimes--; } ISuiteResult sr = new SuiteResult(xmlSuite,tr); suiteResults.put(tr.getName(),sr); }
最后将修改后的源码进行打包;
$ cd testng $ ./build-with-gradle
打包完成后,可以在build/libs中找打testNG的jar;
测试过程中使用修改后的jar,就可以实现test运行失败后重新运行,直到三次失败后不在运行,同时报告中出现test的三次运行结果。