cam*_*ell 4 testng surefire maven
我期待以下输出:
Running TestSuite
[DEBUG] beforeClass
[DEBUG] beforeTest
[DEBUG] test
[DEBUG] afterTest
[DEBUG] beforeTest
[DEBUG] test
[DEBUG] afterTest
[DEBUG] afterClass
Run Code Online (Sandbox Code Playgroud)
但相反,这实际上发生了.注意2个问题:BeforeClass 在 BeforeTest 之后运行.第二,Before/AfterTest运行一次.
Running TestSuite
[DEBUG] beforeTest
[DEBUG] beforeClass
[DEBUG] test
[DEBUG] test
[DEBUG] afterClass
[DEBUG] afterTest
Run Code Online (Sandbox Code Playgroud)
这是代码.
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class TestNgAnnoTest {
@BeforeClass
public void beforeClass(){
System.out.println("beforeClass");
}
@BeforeTest
public void beforeTest(){
System.out.println("beforeTest");
}
@Test
public void test1(){
System.out.println("test");
}
@Test
public void test2(){
System.out.println("test");
}
@AfterTest
public void afterTest(){
System.out.println("afterTest");
}
@AfterClass
public void afterClass(){
System.out.println("afterClass");
}
}
Run Code Online (Sandbox Code Playgroud)
对于任何对工具版本感兴趣的人:java macosx/1.6.0_22,mvn:2.2.1,surefire 2.6,testng 5.14.2
愚蠢的我.用After/BeforeMethod混淆After/BeforeTest.
[DEBUG] beforeClass
[DEBUG] beforeMethod
[DEBUG] test
[DEBUG] afterMethod
[DEBUG] beforeMethod
[DEBUG] test
[DEBUG] afterMethod
[DEBUG] afterClass
Run Code Online (Sandbox Code Playgroud)
替换After/BeforeTest会生成正确的exec排序.
@BeforeClass
public static void beforeClass(){
log.debug("beforeClass");
}
@BeforeMethod
public void beforeMethod(){
log.debug("beforeMethod");
}
@Test
public void test1(){
log.debug("test");
}
@Test
public void test2(){
log.debug("test");
}
@AfterMethod
public void afterMethod(){
log.debug("afterMethod");
}
@AfterClass
public void afterClass(){
log.debug("afterClass");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2874 次 |
| 最近记录: |