在TestNG Factory中使用组

时间:2018-02-14 17:08:55

标签: java testng

我有一个@Factory方法构造一个测试类文件数组,并返回它们。对于这个工厂,虽然我希望能够指定将运行哪些组,但是对于整个工厂建设。

我希望这很简单如下:

CustomObject param = new CustomObject();

@Factory(groups = "a group name")
public Object[] myFactory() {
    return new Object [] {new RegressionFileOne(param), new RegressionFileTwo(param)};
}

@Factory方法虽然不采用组,但这是不可能的。我已经尝试使用TestNG对象并生成一个xml文件来运行,但是对于xml,我仅限于发送Strings作为构造函数的参数。

我目前正在使用TestNG 6.8.8

新版本的TestNG是否有更新可以实现这一目标?或者有一些解决方法吗?感谢。

1 个答案:

答案 0 :(得分:1)

这在TestNG中是不可能的(即使在最新发布的TestNG 6.14.2版本中,行为也是一样的。)

@Factory注释主要用于控制测试类实例化。测试类基本上可以被视为容纳一个或多个@Test注释测试方法的容器。

groups是过滤@Test方法的方法之一,让TestNG找出要执行的内容和不执行的内容。

首先,必须先实例化测试类,然后才能应用过滤。 TestNG通过默认构造函数自行实例化测试类,或者它依赖于您通过数据提供程序(或)为参数化构造函数指定参数注入机制,依赖于您通过{{实际调用参数化构造函数1}}注释。

只有在创建了测试类实例之后,TestNG才会过滤到要执行哪些测试方法的部分。

所以群组根本不适用于@Factory注释。

希望增加清晰度。