我有一个@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是否有更新可以实现这一目标?或者有一些解决方法吗?感谢。
答案 0 :(得分:1)
这在TestNG中是不可能的(即使在最新发布的TestNG 6.14.2
版本中,行为也是一样的。)
@Factory
注释主要用于控制测试类实例化。测试类基本上可以被视为容纳一个或多个@Test
注释测试方法的容器。
groups是过滤@Test
方法的方法之一,让TestNG找出要执行的内容和不执行的内容。
首先,必须先实例化测试类,然后才能应用过滤。 TestNG通过默认构造函数自行实例化测试类,或者它依赖于您通过数据提供程序(或)为参数化构造函数指定参数注入机制,依赖于您通过{{实际调用参数化构造函数1}}注释。
只有在创建了测试类实例之后,TestNG才会过滤到要执行哪些测试方法的部分。
所以群组根本不适用于@Factory
注释。
希望增加清晰度。