是否可以通过类变量为TestNG注释“启用”属性设置值?

时间:2019-04-11 09:09:25

标签: selenium testng

我已将变量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中为enabled属性设置值。

1 个答案:

答案 0 :(得分:0)

注释值不能通过变量设置。 Java语言不允许您这样做。

如果您想在运行时翻转批注值,则应执行以下操作。

  1. 创建TestNG接口org.testng.IAnnotationTransformer的实现
  2. 现在在transform()方法中,您将可以访问注释以及构造函数,方法或类[因为TestNG注释可以在任何这些方法之上使用],并且可以翻转注释值。
  3. 现在您可以通过testng.xml标签在<listeners>中引用此实现(我们称为TestNG侦听器)。