Перейти к содержимому

Фотография

Перезапуск упавшего теста с параметром

IRetryAnalyzer TestNG Selenium

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 kvazarka

kvazarka

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Надежда
  • Город:Москва


Отправлено 29 марта 2016 - 16:38

Добрый день!

пытаюсь реализовать перезапуск упавшего тестового метода, которому в аргументах передается параметр.

 

Тестовый метод выглядит следующим образом:

@Test(retryAnalyzer=RetryAnalyzer.class)
@Parameters({ "StepIndex" })
public void runFromStep(int step) {
...
} 
Реализовала классы RetryAnalyzer implements IRetryAnalyzer и RetryListenerAdapter extends TestListenerAdapter. 
Но при перезапуске упавшего теста вызывается runFromStep(int) и тест падает, так как нет такого тестового метода.
 
Может кто уже сталкивался с такой проблемой, и знает решение?

  • 0

#2 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 30 марта 2016 - 07:09

Вам нужно просто если тест упал - перезапустить его ?

Используйте IHookable

package doubl;

import org.testng.IHookCallBack;
import org.testng.IHookable;
import org.testng.ITestResult;

public class DoubleRun implements IHookable{
	
	@Override
	public void run(IHookCallBack callBack, ITestResult testResult) {
		System.out.println("Starting  " + testResult.getName());
		
		callBack.runTestMethod(testResult);
		
		if (testResult.getThrowable()!=null) {
			
			callBack.runTestMethod(testResult);
		}
		
	}

}

Сам тестовый метод:

package doubl;

import org.testng.Assert;
import org.testng.annotations.Listeners;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;


@Listeners(DoubleRun.class)
public class Tests {
	
	@Test
	@Parameters("url")
	public void test1(String url) {
		System.out.println("--------------------------------");
		System.out.println("url = " + url);
		Assert.assertEquals(3, 3);
	}
}

И XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="false">
	
  <test name="Test">
  	 <parameter name="url" value="127.0.0.1"/>
    <classes>
      <class name="doubl.Tests"/>
    </classes>
  </test>
</suite>

Если в самом test1 сделать ошибку, т.е.

Assert.assertEquals(1, 3);

 

То тест запуститься 2 раза


  • 1



Темы с аналогичным тегами IRetryAnalyzer, TestNG, Selenium

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных