我试过这个: 的 BaseClass的
package pages;
import org.testng.annotations.BeforeSuite;
public class BaseClass {
@BeforeSuite
public static void setup() {
System.out.println("in set up method");
}
}
识别TestClass
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
答案 0 :(得分:4)
alwaysRun = true
上需要@BeforeSuite
。
对于before方法(beforeSuite,beforeTest,beforeTestClass和beforeTestMethod,但不是beforeGroups):如果设置为true,则无论它属于哪个组,都将运行此配置方法。
换句话说,如果您运行具有特定组的套件,配置方法必须具有预期的组或alwaysRun
,它将使用每个goups激活该方法。
答案 1 :(得分:1)
您需要将setup方法放在您所包含的组中,否则它将无法运行,因为该方法不属于该组。
将套件添加到应该工作的所有组中。