gpt4 book ai didi

java - 将组与 TestNG Factory 一起使用

转载 作者:行者123 更新时间:2023-12-02 11:37:54 25 4
gpt4 key购买 nike

我有一个 @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,我只能发送字符串作为构造函数的参数。

我目前使用的是 TestNG 6.8.8

较新版本的 TestNG 是否有更新以使这成为可能?或者有一些解决方法吗?谢谢。

最佳答案

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

@Factory注解主要用于控制测试类实例化。测试类本质上可以可视化为一个容器,其中包含一个或多个 @Test 带注释的测试方法。

groups 是过滤 @Test 方法的方法之一,让 TestNG 确定执行什么、不执行什么。

因此,首先必须实例化测试类,然后才能应用过滤。 TestNG 要么通过默认构造函数自行实例化测试类,要么依赖您通过数据提供程序指定参数化构造函数的参数注入(inject)机制(或者)依赖您通过 实际调用参数化构造函数>@Factory注释。

只有在创建测试类实例之后,TestNG 才会开始过滤要执行的测试方法。

因此组根本不适用于 @Factory 注解。

希望能够增加清晰度。

关于java - 将组与 TestNG Factory 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48792684/

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