“BeforeTest”只打印一次,而不是两次。我做错了什么?
不好意思。我没有注意到你是@BeforeTest写的,但是在你的例子中,@BeforeTest几乎等于@BeforeClass,当你不再测试类时,最好使用@BeforeClass。
@BeforeClass“应该在你的测试方法的同一类中声明,而不是不同!
//Example
package test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class Tests {
private String bClass;
private String bMethod1;
private String bMethod2;
@BeforeClass
public void beforeClass() {
bClass = "BeforeClass was executed once for this class";
}
@BeforeMethod
public void beforeMetodTest1() {
bMethod1 = "It's before method for test1";
}
@Test
public void test1() {
System.out.println(bClass);
System.out.println(bMethod1);
}
@BeforeMethod
public void beforeMethodTest2() {
bMethod2 = "It's before method for test2";
}
@Test
public void test2() {
System.out.println(bClass);
System.out.println(bMethod2);
}
}
@BeforeClass将执行一次,在此类中的所有测试方法之前执行一次。@BeforeMethod将在编写测试方法之前执行。
@BeforeClass可能只有测试课上的一个,@BeforeMethod不同!(如果是一些@BeforeClass,则轮流进行,但这不是测试的正确组成)
P.S. 抱歉我的英语:)