リフレクションを使用してメソッドからパラメーターを取得し、パラメーター名を取得できます。
@DataProvider
public Object[][] testData(Method method){
String arg0 = method.getParameters()[0].getName();
// should be "userName" in your example test case
}
-g:vars
デバッグ情報にパラメーター名を含めるには、クラスをコンパイルする必要があることに注意してください。それ以外の場合、パラメーター名はarg0
, arg1
, ... という名前になります。OpenJDK 8 では、これがデフォルトのようです。
その事実にあまり依存せず、名前の混乱や競合の可能性を避けるために、引数名を指定する (カスタム) 注釈を使用します。
注釈を定義します。
@Retention(RUNTIME)
@Target(PARAMETER)
public @interface ParamName {
public String value();
}
これを使って:
public void TC_001(@ParamName("username") String userName, String passWord) { ... }
名前にアクセスします。
Parameter parameter = method.getParameters()[0];
ParamName parameterNameAnn = parameter[0].getAnnotation(ParamName.class);
String parameterName;
if (parameterNameAnn != null) {
// get the annotated name
parameterName = parameterNameAnn.value();
} else {
// annotation missing, resort to the "reflected" name
parameterName = parameter.getName();
}
こちらもご覧ください