как получить имя метода во время выполнения теста?


(Mykhailo Poliarush) #1

StackTraceElement stackTraceElements[] = (new Throwable()).getStackTrace();
methodName = stackTraceElements[1].toString();

есть вот такое вот решение, у кого есть более елегантное?


(Denis Veselovskiy) #2

вот есть еще такая бяка


Thread.currentThread().getStackTrace()[1].getMethodName();

но я не уверен что индекс [1] будет универсальным для разных классов, может его придется менять ((( 

 

 

P.S: Дзынька, харэ морозится ))) заглядывай иногда в скайп


(Mykhailo Poliarush) #3

[1] - если ты бросаешь ексепшин внутри метода, то твой клвсс всегда будет первый


(Denis Veselovskiy) #4

пока что самый приемлимый результат

String name = new Object(){}.getClass().getEnclosingMethod().getName();


спс Андрюхе )


(d3unka) #5

По поводу тест НГ Денис, ты был прав. Есть решение покрасивее

 

{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }@BeforeMethod(alwaysRun = true)
public void setUp(Method method) {
System.err.println(method.getName());
}

@Test()
public void createAccount() {
}{/syntaxhighlighter}

 

Проверил, работает

 

Взято с https://groups.google.com/forum/#!topic/testng-users/l7of7XKqmvI