Попытка запустить AfterMethod с утверждением - PullRequest
0 голосов
/ 04 марта 2019

У меня много тестовых методов в моем классе тестирования.Моя цель - иметь возможность использовать утверждение дважды: первый раз в каждом тесте и второй раз в каждом тесте AfterMethod.

Вот пример моего кода:

 @AfterMethod(alwaysRun = true )
public void reportTestFail() {

   String a = getAllParameters().get("A");
   if (a.contains("1")) {
       asserter.fail("1 is found in parameters");
   }
   else {
       asserter.assertTrue(true,"Test passed");
   }
}

Почему я всегда получаю неудачную конфигурацию в конце каждого теста?

Не могу ли я утверждать вне методов теста?

1 Ответ

0 голосов
/ 05 марта 2019

В этом случае вам следует использовать TestNG IInvokedMethodListener2 или IInvokedMethodListener (для TestNG версии 7+) и выполнить дополнительную проверку в afterInvocation.В реализации этого метода вы должны записать свои утверждения в блоке try-catch, а в блоке catch вы должны установить статус testMethod как сбой и установить исключение.Например:

public void afterInvocation(IInvokedMethod method, ITestResult testResult, ITestContext context){
 try{
  //perform addition validations
 }catch(Exception e){
   //assertion failed
   //update testResult to fail
 }
}

Чтобы изменить результат теста, см. Код в qaf .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...