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的三次运行结果。

posted @ 2017-02-16 21:13  veitch-w  阅读(1179)  评论(0编辑  收藏  举报