4

我有带有我的测试和 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 应该是什么样的?

4

0 回答 0