@BeforeSuite无法正常工作

pau*_*aul 2 java testng

我已经试过了: BaseClass

package pages;

import org.testng.annotations.BeforeSuite;

public class BaseClass {

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

}
Run Code Online (Sandbox Code Playgroud)

测试类

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

}
}
Run Code Online (Sandbox Code Playgroud)

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 -->
Run Code Online (Sandbox Code Playgroud)

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

juh*_*err 5

您需要alwaysRun = true继续@BeforeSuite

文档中

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

换句话说,如果您运行具有特定组的套件,则配置方法必须具有预期的组,或者具有alwaysRun将随每个组激活该方法的组。