我已经试过了:
基类
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
的名称,这些组将在每次启动时都激活该方法。