Код: Выделить всё
protected ThreadLocal iTestContextThreadLocal = new ThreadLocal();
Код: Выделить всё
public class RestTests extends TestBase{
@BeforeClass(alwaysRun = true)
public void init(ITestContext iTestContext) {
iTestContext.setAttribute("feature", "Sample - RestTests1");
iTestContextThreadLocal.set(iTestContext);
String feature = iTestContextThreadLocal.get().getAttribute("feature").toString();
}
@Test
public void testScenario1(){
//Automation Code
}
}
Код: Выделить всё
@AfterMethod(alwaysRun = true)
public void test() {
try {
ITestContext iTestContext = iTestContextThreadLocal.get();
String feature = iTestContext.getAttribute("feature").toString();
System.out.println("***** ThreadLocalAttribute: " + feature);
//Rest of the code
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// Clean up the ThreadLocal variables after method execution
iTestContextThreadLocal.remove();
}
}
В качестве примера, если я установите «Sample — RestTests1» и «Sample — RestTests2» в качестве функций в моих дочерних классах, когда я пытаюсь получить к ним доступ в TestBase afterMethod с помощью приведенного ниже кода, предоставляется только одна функция класса
Код: Выделить всё
iTestContext.getAttribute("feature").toString();
Я пробовал изменить порядок аннотаций и опробовать решения в Интернете. Но исправление пока не найдено.
Любая помощь приветствуется.
Заранее спасибо.
Подробнее здесь: https://stackoverflow.com/questions/791 ... the-parent