Хотелось организовать полный прогон тестов так, чтобы они не прекращали своё выполнение в середине теста. Реализация блоков try-catch решила этот вопрос, но тесты начинают завершаться со статусом Success. Сделал свой ехсепш и метод, бросающий этот эксепшн, если были любые другие эксепшены. Теперь приходиться вызывать этот метод в конце каждого теста, что не очень удобно.
Подскажите как можно избежать таскания дополнительного метода в каждом тесте. Можно ли сделать проверку автоматической?
если вы используете в каждом тесте tearDown метод после завершения теста то можно это вынести туда, а в процессе прохождениея теста заполнять arrayList errors к примеру данными.
packagetests;importjava.util.List;importorg.testng.IInvokedMethod;importorg.testng.ITestResult;importorg.testng.Reporter;importorg.testng.internal.Utils;publicclass CustomTestListener extends TestListenerAdapter {
@Override
publicvoid afterInvocation(IInvokedMethod method, ITestResult result){
Reporter.setCurrentTestResult(result);if(method.isTestMethod()){List verificationFailures = TestBase.getVerificationFailures();//if there are verification failures...if(verificationFailures.size()>0){//set the test to failed
result.setStatus(ITestResult.FAILURE);//if there is an assertion failure add it to verificationFailuresif(result.getThrowable()!=null){
verificationFailures.add(result.getThrowable());}int size = verificationFailures.size();//if there's only one failure just set thatif(size ==1){
result.setThrowable(verificationFailures.get(0));}else{//create a failure message with all failures and stack traces (except last failure)StringBuffer failureMessage =newStringBuffer("Multiple failures (").append(size).append("):nn");for(int i =0; i < size-1; i++){
failureMessage.append("Failure ").append(i+1).append(" of ").append(size).append(":n");Throwable t = verificationFailures.get(i);String fullStackTrace = Utils.stackTrace(t, false)[1];
failureMessage.append(fullStackTrace).append("nn");}//final failureThrowable last = verificationFailures.get(size-1);
failureMessage.append("Failure ").append(size).append(" of ").append(size).append(":n");
failureMessage.append(last.toString());//set merged throwableThrowable merged =newThrowable(failureMessage.toString());
merged.setStackTrace(last.getStackTrace());
result.setThrowable(merged);}}}}}