2

我在我的一个函数库中插入了一个函数(在测试的资源设置中引用)。它看起来像这样:

Public Function NWRecoverOnRunStep (AObject,AMethodName,AArguments,AResult)
  Print "NWRecoverOnStep MethodName='" & AMethodName & "' Result=" & AResult
End Function

(显然,我处于探索阶段;)

我还创建了一个恢复场景,上面写着“在错误'找不到对象'时调用 NWRecoverOnRunStep”,将其保存为恢复场景文件,并将该文件与我的测试相关联。

当我现在运行测试时,QTP 说“库文件中的错误。”,blabla,加上详细信息:

File: [QualityCenter\Resources] mylib.qfl

line (1): 'Dim CaptchaCheckActive '.

Description: Name redefined

(我在所有库中都使用显式选项。)(并且:当然,“Dim CaptchaCheckActive”是库中定义的第一个全局变量,库 mylib.qfl 包含此声明和恢复处理程序。)

问:这是因为库两次链接到我的测试,一次是我的“传统”函数库,另一次是包含我的恢复场景函数?

备选问:恢复场景处理函数是否必须驻留在它们自己的函数库中,即与我的其他用户定义函数分开?

我没有在dox中看到这一点。

4

1 回答 1

1

虽然我找不到有关此的文档,但从经验上看,答案似乎是肯定的。包含处理程序的库不得包含在资源、库列表中。否则,该库将被解析两次到相同的“命名空间”或作用域中,第一次声明/定义将产生重新定义错误。

于 2010-11-11T09:24:48.603 回答