gpt4 book ai didi

java - TestNG @BeforeMethod 方法驻留在父类(super class)中并且运行特定组时未调用

转载 作者:太空狗 更新时间:2023-10-29 22:49:55 27 4
gpt4 key购买 nike

我正在尝试使用一个组来运行与我正在从事的工作相关的测试子集,称为“当前”。问题是,如果我使用父类(super class)在 @BeforeMethod 中进行一些设置,则该方法会在我运行所有测试时运行,但在我仅使用指定的“当前”组运行时不会运行。

因此,当我运行所有测试时,emptyTest 失败,因为 @BeforeMethod 被调用,而当仅运行 group current 时,该方法未被调用。注意:如果我将 @Test(groups = {"current"}) 添加到子类,那么它会运行 - 但是,它也会运行所有未标记为“current”的子类,这违背了“current”组的目的.

如果有更好的方法来完成此行为,我愿意接受所有解决方案。

谢谢,赎金

父类(super class):

public class TestNGSuperclass {
@BeforeMethod
public void failingToShowThatItIsNotRun() {
Assert.fail();
}
}

子类:

@Test(groups = {"current"})
public class TestNGCurrentGroup extends TestNGSuperclass {
public void emptyTest() {}
}

TestNG 配置:

<test name="current">
<groups>
<run>
<include name="current"/>
</run>
</groups>
<packages>
<package name="uiowa.wf.test.*"/>
</packages>
</test>
<test name="all-tests">
<packages>
<package name="uiowa.wf.test.*"/>
</packages>
</test>

最佳答案

您的@BeforeMethod 需要是您正在运行的组的一部分。

如果您不想硬编码您组的值并且您认为您将始终想要运行此方法,则也可以使用 @BeforeMethod(alwaysRun = true)您当前正在运行的组。

关于java - TestNG @BeforeMethod 方法驻留在父类(super class)中并且运行特定组时未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020260/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com