如何使 @AfterTest 始终运行但仅在同一组中?

How to make an @AfterTest alwaysRun but only in the same group?

我想要我的 @AfterTest 运行 即使测试失败 @BeforeClass。所以我使用参数(alwaysRun = true)。 但问题是,@AfterTest 运行 甚至在不同的组中。 我的测试代码是这样的

在test1.kt中:

@BeforeClass(groups = ["A"])
fun init() {...}

@Test(groups = ["A"])
fun test() {...}

@AfterTest(groups = ["A"], alwaysRun = true)
fun tesrdown() {...}

在test2.kt中:

@BeforeClass(groups = ["B"])
fun init() {...}

@Test(groups = ["B"])
fun test() {...}

@AfterTest(groups = ["B"], alwaysRun = true)
fun tesrdown() {...}

现在如果我只运行测试group == ["B"],A组的@AfterTest仍然会被执行。 有没有办法让 @AfterTest 只有 运行 而 groups == ["A"]?

alwaysRun = true 确保每次都执行该方法,这就是为什么 @AfterTest of group = "A" 在执行 group= "B" 时执行。

您可以从 @AfterTest 中删除 @alwaysRun 选项,只保留 groups = "B"groups= "A"

当您在测试中包括要执行的任何组时 运行 只有 @AfterTest 该组将被执行。