TestNG 的 @BeforeMethodAnnotation Type,其作用是标明所注解的方法在每一个测试方法运行之前会执行一次。例如
@BeforeMethod
void FuncBefore()
@Test
void TestCase1()
@Test
void TestCase2()
执行的顺序为
FuncBefore
TestCase1
FuncBefore
TestCase2
但是,在将TestCase放入某一个Group之后,@BeforeMethod失效了:
@BeforeMethod
void FuncBefore()
@Test(groups = "GroupA")
void TestCase1()
@Test(groups = "GroupA")
void TestCase2()
当我们执行GroupA的测试脚本时,执行顺序为
TestCase1
TestCase2
原因:@BeforeMethod或@BeforeTest未被包含进GroupA中,因此运行GroupA时无法执行,看似“失效”了。当未指定Group时,@Test同时被视作处于一个“全局group”,因此会执行。
解决方法:
1、将@BeforeMethod同样加入GroupA
2、设置@BeforeMethod的属性alwaysRun=true:
@BeforeMethod(alwaysRun = true)
void FuncBefore()