testng重新运行忽略的测试

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

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

  1. <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
  2. <suite name="suit1" configfailurepolicy="continue">
  3. <listeners>
  4. <listener class-name="PackageName.AnnotationTransformer"/>
  5. </listeners>
  6. <test name="all-tests">
  7. <packages>
  8. <package name="PackageName"/>
  9. </packages>
  10. </test>
  11. </suite>

注解变压器等级:

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

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

  1. @Test
  2. @Ignore
  3. public void testRetry() {
  4. System.out.println("enter here");
  5. }

retryanalyzer类:

  1. public class MyRetryAnalyzer implements IRetryAnalyzer {
  2. private int retryCount = 1;
  3. private static final int maxRetryCount = 1;
  4. @Override
  5. public boolean retry(ITestResult iTestResult) {
  6. if(retryCount <= maxRetryCount) {
  7. System.out.println("retry test "+iTestResult.getName());
  8. retryCount++;
  9. return true;
  10. }
  11. else {
  12. return false;
  13. }
  14. }
  15. }

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

ddrv8njm

ddrv8njm1#

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

相关问题