我有带有我的测试和 Maven 的 java 项目来构建它。
测试结构:
- QuickTest(TestBase 的子级)
- LongTest(TestBase 的子级)
- TestBase(QuickTest 和 LongTest 的父级)
TestBase 只包含三个方法:
@BeforeClass
- 运行浏览器@BeforeMethod
- 打开主页@AfterSuite
- 关闭浏览器
QuickTest 包含 4 个带有@Test
注释的快速测试方法, (groups = {"quick"})
LongTest 包含一个@DataProvider
和一个@Test
使用它,与(groups = {"long"})
在 Maven 中,我有一些配置文件可以启动不同的浏览器。我的目标是使用:
mvn test -P ie9 -Dgroups=quick
只运行快速测试,但我的TestBase
课有问题。我总是添加@BeforeClass
和@BeforeMethod
以及(alwaysRun = true)
哪个工作正常。
但是我的@AfterSuite
方法不起作用。当我添加(alwaysRun = true)
它时,此方法将始终记录错误并失败。
对于快速组,我想要测试订单:
BeforeClass -> BeforeMethod -> TestMethod1 -> BeforeMethod -> TestMethodX -> AfterSuite
对于长组,我要订购:
BeforeClass -> BeforeMethod -> TestMethodWithData1 -> BeforeMethod -> TestMethodWithDataX -> AfterSuite
我应该使用哪些注释以及我的 testng.xml 应该是什么样的?