0

Я пытаюсь получить строку из аннотации TestNG @Test(groups="Foo"), а затем использовать ее как имя для папки, которую я динамически генерирую.Получить строку из аннотации @Test TestNG

Как получить текст "Foo" из аннотации TestNG, чтобы я мог использовать его?

ответ

1

Я думаю, что более простое решением для чтения атрибута аннотации (который предполагает отражение и друг) будет использовать ту же постоянную строку:

private static final String FOLDER = "Foo"; 

@Test(groups = FOLDER) 
public void test() { 
    //create the folder named FOLDER 
} 
1

Вы можете получить аннотацию от Method (который вы можете получить от метода Class.get{,Declared}Methods()):

Test test = method.getAnnotation(Test.class); 

Это будет ненулевым, если аннотацию присутствовал, и нулевое значение, если оно не было. Если не ноль, то вы можете просто вызвать метод groups() на test:

String groups = test.groups(); 
0

Почему не используется метод @BeforeMethod?

@BeforeMethod 
public void generateFolderFromGroups(Method m) { 
    Test test = m.getAnnotation(Test.class); 
    String[] groups = test.groups(); 
    // generate folder from groups 
} 

@Test(groups = "Foo") 
public void test() { 
    // the Foo folder will be already created 
} 
Смежные вопросы