在运行组之前,不会执行TestNG @BeforeGroup

时间:2015-04-15 21:51:08

标签: java selenium testng

给出以下代码:

public class NewTest {

    private Object _foreground = null;

    @BeforeGroups("regression")
    public void setUp() {
        System.out.println("executed? setUp");
        _foreground = new MyObject();
    }

    @Test(groups="regression")
    public void testMyObjectToString() throws Exception {
        System.out.println("??? ");
        System.out.println(_foreground == null);
        String value = _foreground.toString();
        Assert.assertTrue(value != null);
    }
}

testNG.xml:

   

    <groups>
        <run>
            <include name="regression" />
        </run>
    </groups>

 <classes>
  <class name="com.automation.test.NewTest"/>
</classes>

当我试图运行时,打印语句说:

??? 
true

这意味着_foreground为null,这意味着不会执行setUp方法。 TestNG还在行上显示了java.lang.NullPointerException:

String value = _foreground.toString();

然而我不知道我错过了什么。在我看来&#34;回归&#34;将运行group并且带有@beforeGroup的setUp方法将在带有@Test的testMyObjectToString之前运行。显然这不是正在发生的事情..

1 个答案:

答案 0 :(得分:13)

这可能是一个非常愚蠢的错误,也许有人会对testNG的新手做出......

@BeforeGroups("regression") 

这是一个错误的用法..正确的用法应该是:

@BeforeGroups(groups = "regression")

花了我两天!!