【问题标题】:Exlude group doesn't work for constructor排除组不适用于构造函数
【发布时间】:2012-07-06 09:34:21
【问题描述】:

由于我的设置不断增长,我想使用 TestNG 的更多功能。 所以今天我尝试在我的 testng.xml 文件中排除一个 groud。

当我将整个 Class 声明为组的一部分时,这不会阻止构造函数完成它的工作(启动 WebDriver 实例)。

@Test(groups = "default")
public class ABCDefaultTest extends AbstractABCTest {

    public ABCDefaultTest() {
        super();
    }


}

请注意:AbstractABCTest 是“abc”组的一部分

我想在 AfterClass 方法中退出 WebDriver 并添加 (alwaysRun = true) 但没有奏效。

似乎构造函数不是该组的一部分(如果您在一个类中有不同的组,这很好)但是 @AfterClass (alwaysRun = true) 注释的方法是......

但是如果只有为类指定的组而没有部分组,那么启动类是没有意义的吧?

你能告诉我我做错了什么或者这是一个错误吗?

【问题讨论】:

    标签: webdriver testng surefire


    【解决方案1】:

    您的解释是正确的,组仅适用于 TestNG 注释方法。如果一个组被排除在外,你应该避免在构造函数中做你不希望发生的工作。

    如何在属于该组的@Before* 方法中完成这项工作?然后你只需要决定哪种配置方法适合你:@BeforeSuite、@BeforeTest、@BeforeGroup 或@BeforeClass。

    【讨论】:

    • 首先非常感谢您通过 SE 回答问题。一个伟大的框架,开发人员不会躲在他的产品后面。 ;) 我已经想到了,但是构造函数从 DataProvider 接收不同的配置设置,所以它不是那么简单。我喜欢 DataProvider 的地方在于我可以从单个类配置整个测试运行,所以我不想放弃这个选项并通过 ITestContext 或 @Parameter 获取参数...
    猜你喜欢
    • 2016-01-13
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    相关资源
    最近更新 更多