Можно ли установить значение атрибута «enabled» для аннотации TestNG из переменной класса? - PullRequest
0 голосов
/ 11 апреля 2019

Я определил переменную enabled_status как мою переменную класса и хочу установить ее значение для включенной аннотации TestNG, как показано ниже.

public class Test{
    boolean enabled_status = false;
    @Test(priority=1, enabled=enabled_status)
    public void testMethodA() throws InterruptedException{      
        ....code...
        ....code...
    }

Я получаю сообщение об ошибке ниже

Значение атрибута аннотации Test.enabled должно быть константным выражением

Подскажите, пожалуйста, какЯ могу добиться ожидаемого поведения, чтобы установить значение для включенного атрибута из переменной класса или из Excel.

1 Ответ

0 голосов
/ 12 апреля 2019

Значения аннотации не могут быть установлены через переменные.Язык Java не позволяет вам этого делать.

Если вы хотите переворачивать значения аннотаций во время выполнения, вам следует сделать следующее.

  1. Создать реализацию TestNGinterface org.testng.IAnnotationTransformer
  2. Теперь внутри метода transform() вы получите доступ к аннотации, а также к конструктору, методу или классу [Так как аннотации TestNG могут использоваться поверх любого из этих] и вы можете перевернуть значения аннотаций.
  3. Теперь вы можете ссылаться на эту реализацию (которую мы называем слушателем TestNG) в вашем testng.xml через тег <listeners>.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...