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
IRetryAnalyzerkaudu. - 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.