【问题标题】:Is it possible to set value for TestNG annotation "enabled" attribute from a class variable?是否可以从类变量中为 TestNG 注释“启用”属性设置值?
【发布时间】:2019-04-11 09:09:24
【问题描述】:

我已经定义了一个变量 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 中为启用的属性设置值。

【问题讨论】:

    标签: selenium testng


    【解决方案1】:

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

    如果您想在运行时翻转注解值,那么您应该执行以下操作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2011-03-17
      • 1970-01-01
      • 2013-09-11
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多