2016-01-22 1 views
0

Мне хотелось бы получить список методов тестирования из текущего класса тестирования до его запуска. Когда я попытался расширить TestListenerAdapter для этого, testContext.getAllTestMethods() вернул все методы тестирования из всех классов. Но как получить только методы из текущего класса?Получить текущие методы тестирования класса до запуска класса в TestNG

+0

Что вы хотите делать с этими методами испытаний? –

+0

Прежде всего, я хотел бы иметь список их имен. После этого я хотел бы получить их описание описания теста. – Adept

+0

Используйте отражение .. –

ответ

0

Я нашел частичный ответ на вопрос. Прежде всего, я могу получить все методы испытаний путем расширения TestListenerAdapter

общественного класса MyListener расширяет TestListenerAdapter {

@Override 
public void onStart(ITestContext testContext) { 
    super.onStart(testContext); 
    ITestNGMethod[] methods = testContext.getAllTestMethods(); 
    // here we can save methods into some object 
} 

Затем, в нашем тестовом классе в @BeforeClass() мы можем получить доступ к объекту и получить только методов из класса this.getClass(). getName(). Таким образом, мы фильтруем только те методы из текущего класса. В этом случае мы можем получить доступ ко всей необходимой информации, такой как описание и другие важные атрибуты теста.

0

Если у вас нет слушателя, вы можете также использовать @BeforeClass аннотаций подобным образом, как указано собственный ответ ФП в:

@BeforeClass 
public void setup(ITestContext context) { 
    for (ITestNGMethod method : context.getAllTestMethods()) { 
     if(method.getRealClass() == this.getClass()) { 
      // do what you have to do 
     } 
    } 
}