TestNG @BeforeGroup 在组为 运行 之前不执行

TestNG @BeforeGroup is not executed before the group is run

给定以下代码:

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();

但是我不知道我错过了什么。在我看来,"regression" 组将是 运行,@beforeGroup 的 setUp 方法将是 运行,然后是带有 @Test 的 testMyObjectToString。显然这不是正在发生的事情..

testNG 的新手可能会犯一个非常愚蠢的错误...

@BeforeGroups("regression") 

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

@BeforeGroups(groups = "regression")

花了我两天时间!!