У меня есть тест с invocationcount
, установленный на 20, и хотел бы, чтобы тест остановился, если итерация 4 или 5 не удалась.testng - Invocationcount - стоп-тест при первом сбое
Есть ли способ для этого? Я просто искал то же самое, но не нашел
У меня есть тест с invocationcount
, установленный на 20, и хотел бы, чтобы тест остановился, если итерация 4 или 5 не удалась.testng - Invocationcount - стоп-тест при первом сбое
Есть ли способ для этого? Я просто искал то же самое, но не нашел
Вы можете использовать IInvokedMethodListener.
Переопределите оба метода для интерфейса. В afterInvocation проверьте результат и, возможно, добавьте карту Map<method, failureCount>
В beforeInvocation проверьте, не скроется ли failCount> 4, а затем выдаст SkipException, чтобы остальные вызовы были пропущены.
Что-то вроде:
static Map<String, Integer> methodFailCount = new HashMap<String, Integer>();
public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
if(methodFailCount.get(method.getTestMethod().getMethodName())!= null && methodFailCount.get(method.getTestMethod().getMethodName()) > 4)
throw new SkipException("Skipped due to failure count > 4");
}
public void afterInvocation(IInvokedMethod method, ITestResult testResult) {
if(testResult.getStatus() == TestResult.FAILURE){
if(methodFailCount.get(method.getTestMethod().getMethodName()) == null)
methodFailCount.put(method.getTestMethod().getMethodName(),1);
else{
methodFailCount.put(method.getTestMethod().getMethodName(),
methodFailCount.get(method.getTestMethod().getMethodName())+1);
}
}
}
Отлично! Это помогло много – javanoob