每次套件中的测试失败时,TestNG 都会在输出目录中创建一个名为testng-failed.xml的文件。此 XML 文件包含仅重新运行这些失败的方法所需的信息,使您能够快速重现失败而无需运行整个测试。

    1. java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs testng.xml
    2. java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs test-outputs\testng-failed.xml

    请注意,testng-failed.xml将包含所有必要的依赖方法,以便保证您运行失败的方法而不会出现任何 SKIP 失败。

    有时,您可能希望 TestNG 在测试失败时自动重试。在这些情况下,您可以使用重试分析器。当您将重试分析器绑定到测试时,TestNG 会自动调用重试分析器以确定 TestNG 是否可以再次重试测试用例,以尝试查看刚刚失败的测试现在是否通过。以下是如何使用重试分析器:

    1. 构建接口org.testng.IRetryAnalyzer的实现
    2. 将此实现绑定到@Test注释,例如@Test(retryAnalyzer = LocalRetry.class)

    以下是重试分析器的示例实现,它最多重试测试 3 次。

    1. import org.testng.IRetryAnalyzer;
    2. import org.testng.ITestResult;
    3. public class MyRetry implements IRetryAnalyzer {
    4. private int retryCount = 0;
    5. private static final int maxRetryCount = 3;
    6. @Override
    7. public boolean retry(ITestResult result) {
    8. if (retryCount < maxRetryCount) {
    9. retryCount++;
    10. return true;
    11. }
    12. return false;
    13. }
    14. }
    1. import org.testng.Assert;
    2. import org.testng.annotations.Test;
    3. public class TestclassSample {
    4. @Test(retryAnalyzer = MyRetry.class)
    5. public void test2() {
    6. Assert.fail();
    7. }
    8. }