我已经试过了:
基类

package pages;

import org.testng.annotations.BeforeSuite;

public class BaseClass {

    @BeforeSuite
    public static void setup() {
        System.out.println("in set up method");
    }

}


测试类

 package pages;

 import org.testng.annotations.Test;

 public class TestClass extends BaseClass {

@Test(groups = { "group1" })

public void grpOnetest() {
    System.out.println("Method grp one");

}

@Test(groups = { "group2" })

public void grpTwotest() {
    System.out.println("Method grp two");

}

@Test(groups = { "group3" })

public void grpThreetest() {
    System.out.println("method grp three");

}
}


testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">

    <test name="Test">
        <groups>
            <run>
                <include name="group1" />
            </run>
        </groups>
        <classes>
            <class name="pages.TestClass" />
        </classes>
    </test> <!-- Test -->
</suite> <!-- Suite -->


它没有给出任何错误,只是不打印:
“在设置方法中”,即不运行@BeforeSuite

最佳答案

您需要alwaysRun = true上的@BeforeSuite

the documentation


对于before方法(beforeSuite,beforeTest,beforeTestClass和beforeTestMethod,但不是beforeGroups):如果设置为true,则无论配置文件属于哪个组,都将运行此配置方法。


换句话说,如果您运行具有特定组的套件,则配置方法必须具有预期的组或具有alwaysRun的名称,这些组将在每次启动时都激活该方法。

07-24 13:10