TestNG的Group标签导致的@BeforeTest方法无效

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()

你可能感兴趣的:(TestNG的Group标签导致的@BeforeTest方法无效)