Sobes.tech
Junior — Middle

Ինչպե՞ս կարելի է կրկին սկսել անկայուն փորձը՝ կեղծ ձախողումները վերացնելու համար։

sobes.tech AI

Պատասխան AI-ից

Անհատական թեստի (flaky test) կրկնակի գործարկումը հաճախ օգտագործում է retries մեխանիզմը։ Սա կարող է իրականացվել թեստային շրջանակի կամ CI/CD մակարդակով՝

  • JUnit-ում՝ կանոնների կամ նշումների միջոցով, օրինակ, @Retry։
  • TestNG-ում՝ ներքին աջակցություն է առկա IRetryAnalyzer-ի միջոցով։
  • CI/CD-ում՝ կարող եք կոնֆիգուրացնել ձախողված թեստերի կրկնակի գործարկումը։

TestNG-ի օրինակ՝

public class RetryAnalyzer implements IRetryAnalyzer {
    private int count = 0;
    private static final int maxRetry = 3;

    @Override
    public boolean retry(ITestResult result) {
        if (count < maxRetry) {
            count++;
            return true;
        }
        return false;
    }
}

@Test(retryAnalyzer = RetryAnalyzer.class)
public void unstableTest() {
    // թեստ, որը երբեմն կարող է ձախողվել
}

Այս մոտեցումը օգնում է նվազեցնել կեղծ ձախողումների ազդեցությունը, բայց կարևոր է նաև որոնել և վերացնել անշտապության պատճառները։