我用jUnit的@BeforeClass注释标记了一个方法,得到了这个例外,说它必须是静态的.理由是什么?这迫使我所有的init都在静态字段上,据我所知,这是没有充分理由的.
在.Net(NUnit)中,情况并非如此.
编辑 - 使用@BeforeClass注释的方法只运行一次与静态方法无关 - 可以使非静态方法只运行一次(如在NUnit中).
我已经试过了: 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 …Run Code Online (Sandbox Code Playgroud)