这是我的情况。
在我的测试运行之前,在beforesuite中,我实例化了一堆“环境对象”这些对象是基于我的环境配置文件创建的。我的测试实际上将使用这些环境对象。问题是如何将它们传递给测试。
您的第一个冲动可能是使用数据提供程序,它将正确的对象传递给测试。问题是数据提供者必须知道如何引用正确的对象然后传递它们。现在看来,环境对象只能通过名称引用(字符串 - >对象)
我的另一个选择是将测试方法传递给引用正确对象的字符串。但这与上面的问题相同。
这两个选项都会产生大量的依赖关系和问题。我还必须对密钥所指的类型做出许多假设。
大多数问题源于我滥用TestNG的事实。我真正需要的是我自己的控制器,它可以在传递适当的环境对象时实例化我的Test对象。
我正在研究testng的TestRunner接口,但我不确定这是否可行。
任何和所有帮助表示赞赏。埃里克
为什么不使用@Factory和@DataProvider的混合?
工厂将负责创建测试实例并向它们传递正确的参数:字符串(在这种情况下数据提供者可以将这些字符串转换为对象)或直接对象,在这种情况下,您的测试可以直接使用这些值。
如果这不能帮助您解决问题,请随意发布一些代码。
- 塞德里克
我有类似的情况,最后使用java属性。
您可以在代码like this中使用该属性,并使用-Dmyproperty.value = hello将变量传递给JVM。我用它来做环境路径,服务URL,超时量等等。