Sobes.tech
Junior — Middle

Kuidas saab uuesti käivitada ebastabiil test, et eemaldada valesid vigu?

sobes.tech AI

Vastus AI-lt

Korduv käivitada ebastabiil test (flaky test) sageli kasutatakse retries mehhanismi. Seda saab rakendada testiraamistikus või CI/CD tasandil:

  • JUnit puhul, kasutades reegleid või annotatsioone, näiteks @Retry.
  • TestNG-s on sisseehitatud toetust korduste jaoks IRetryAnalyzer kaudu.
  • CI/CD-s saab konfigureerida ebaõnnestunud testide korduvat käivitamist.

Näide TestNG-s:

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 ebastabiilneTest() {
    // test, mis võib mõnikord ebaõnnestuda
}

See lähenemine aitab vähendada valehäirete mõju, kuid on oluline paralleelselt otsida ja kõrvaldada ebastabiilsuse põhjused.