1

这是我的情况。

在运行测试之前,在 beforesuite 中,我实例化了一堆“环境对象”,这些对象是根据我的环境配置文件创建的。我的测试实际上将使用这些环境对象。问题是我怎样才能将它们传递给测试。

您的第一个冲动可能是使用数据提供程序,它会将正确的对象传递给测试。问题是数据提供者必须知道如何引用正确的对象然后传递它们。就目前而言,环境对象只能通过名称(字符串->对象)引用

我的另一个选择是向测试方法传递一个引用正确对象的字符串。但这和上面有同样的问题。

这两个选项都会产生很多依赖和问题。我还必须对键所指的类型做出很多假设。

这个问题大部分源于我滥用TestNG的事实。我真正需要的是我自己的控制器,它可以在传递适当的环境对象的同时实例化我的测试对象。

我正在研究 testng 的 TestRunner 界面,但我不确定这是否可行。

任何和所有的帮助表示赞赏。埃里克

4

2 回答 2

3

为什么不混合使用@Factory 和@DataProvider?

工厂将负责创建您的测试实例并向它们传递正确的参数:字符串(在这种情况下,数据提供者可以将这些字符串转换为对象)或直接对象,在这种情况下,您的测试可以直接使用这些值.

如果这不能帮助您解决问题,请随时发布一些代码。

——塞德里克

于 2010-02-09T23:20:18.320 回答
0

我有类似的情况,最终改用 java 属性。

您可以像这样在代码中使用该属性,并使用 -Dmyproperty.value=hello 将变量传递给 JVM。我将它用于环境路径、服务 url、超时量等。

于 2010-03-04T22:50:15.060 回答