Я внедряю автоматизированный тест с Selenium / TestNG и Im, используя инструмент, который предоставляет пользовательскую аннотацию, которая принимает строки.
Я пытался передать динамические значения из data.properties, и я пытался по-другому, но я постоянно получаю эту ошибку:
значение аннотации должно быть постоянным выражением
public class MapData {
// fetch value from data.properties and store it as string
public static final String TESTNAME = LoadProps.INSTANCE.loadProps().getProperty("TestName1");
public static final String ABC = "ABC";
}
и это мой тестовый образец:
@Custom(name = "login")
@Test(priority = 1)
public void login() throws InterruptedException, IOException {...}
Примечание
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target(value={METHOD})
public abstract @interface Custom extends java.lang.annotation.Annotation
{
public abstract java.lang.String name();
}
Я попытался передать динамическое значение, считываемое из data.properties, следующим образом:
@Custom(name = MapData.TESTNAME)
но я получил эту ошибку во время выполнения
если вы посмотрите на мой класс MapData, у меня есть другая строка, как ABC, которую я хранил непосредственно. когда я использую этот способ прохождения:
@Custom(name = MapData.ABC)
хорошо, и у меня нет ошибок! какая разница? в обе стороны проходят строки.
Есть ли способ получить данные из data.properties и передать их в аннотации?