testng重新运行忽略的测试

bmp9r5qi  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(372)

我想使用testng重新运行失败的测试,因此我有以下testng.xml:

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="suit1" configfailurepolicy="continue">
    <listeners>
        <listener class-name="PackageName.AnnotationTransformer"/>
    </listeners>
    <test name="all-tests">
         <packages>
             <package name="PackageName"/>
         </packages>
    </test>
</suite>

注解变压器等级:

public class AnnotationTransformer implements IAnnotationTransformer {
    @Override
    public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
        annotation.setRetryAnalyzer(MyRetryAnalyzer.class);
    }
}

问题是testng运行以下测试,即使它有ignore注解:

@Test
@Ignore
public void testRetry() {
    System.out.println("enter here");
}

retryanalyzer类:

public class MyRetryAnalyzer implements IRetryAnalyzer {

    private int retryCount = 1;
    private static final int maxRetryCount = 1;

    @Override
    public boolean retry(ITestResult iTestResult) {
        if(retryCount <= maxRetryCount) {
            System.out.println("retry test "+iTestResult.getName());
            retryCount++;
            return true;
       }
        else {
            return false;
        }
    }
}

为什么testng运行被忽略的测试?

ddrv8njm

ddrv8njm1#

@ignore应该在类或包上,而不是在方法上
testng允许您忽略所有@test方法:
在班级里
在特定的包中(或)
在包及其所有子包中
您可以添加 @Test(enabled=false) 方法,因此它将被忽略

相关问题