Взято из документа TestNG :
Если вы объявите свой @DataProvider как принимающий java.lang.reflect.Method
в качестве первого параметра, TestNG передаст текущий метод тестирования для этого первого параметра. Это особенно полезно, когда несколько методов тестирования используют один и тот же @DataProvider и вы хотите, чтобы он возвращал разные значения в зависимости от того, для какого метода тестирования он предоставляет данные.
Например, следующий код печатает имя метода теста внутри его @DataProvider:
@DataProvider(name = "dp")
public Object[][] createData(Method m) {
System.out.println(m.getName()); // print test method name
return new Object[][] { new Object[] { "Cedric" }};
}
@Test(dataProvider = "dp")
public void test1(String s) {
}
@Test(dataProvider = "dp")
public void test2(String s) {
}
и поэтому будет отображать:
test1
test2
Это также может быть объединено с решением, предоставленным desolat, для определения данных из контекста и метода соответственно:
@DataProvider(name = "dp")
public Object[][] foodp(ITestContext ctx, Method method) {
// ...
}