如果函数名称在 UFT 12.02 中相同,为什么只调用最新的函数?
Why only the latest function is called, if the function name are same in UFT 12.02?
我正在使用 UFT 12.02。在函数库中,我有一个函数 ReportEvent(Status, TestStep, ExpectedResult, ActualResult, OptionalLink) 和另一个与 ReportEvent(TestStep, ExpectedResult,实际结果)。
当我在我的脚本中调用 ReportEvent 函数时,它会调用在两者中最高 LOC 中提到的函数,即最后一个要写入的函数。
这并没有阻止我的工作,但我的好奇心变得更好了,我想也许你们都可以提供帮助。
好的,我找到了答案,希望很快-它基于vbscript的检查规则,其层次结构如下:
- 逐行解析代码,使用同一位置的最后一个同名函数定义。
- 如果使用ExecuteFile代码加载的函数库中有匹配函数可用,则使用它。否则……
- 如果动作代码中有匹配函数,则使用。否则……
- 如果使用 LoadFunctionLibrary 代码加载的函数库中有匹配函数可用,则使用它。否则……
- 如果静态关联函数库中有匹配函数,则使用顶层关联函数库中的定义
所以特别是对于我的问题 - 最后写入的库文件中的匹配函数将在动作中调用时使用。
所以 - ReportEvent(Status, TestStep, ExpectedResult, ActualResult, OptionalLink) 在 LOC-50 和 ReportEvent(TestStep, ExpectedResult, ActualResult). 在 LOC -105
然后使用 LOC - 105 处的那个。
我正在使用 UFT 12.02。在函数库中,我有一个函数 ReportEvent(Status, TestStep, ExpectedResult, ActualResult, OptionalLink) 和另一个与 ReportEvent(TestStep, ExpectedResult,实际结果)。
当我在我的脚本中调用 ReportEvent 函数时,它会调用在两者中最高 LOC 中提到的函数,即最后一个要写入的函数。
这并没有阻止我的工作,但我的好奇心变得更好了,我想也许你们都可以提供帮助。
好的,我找到了答案,希望很快-它基于vbscript的检查规则,其层次结构如下:
- 逐行解析代码,使用同一位置的最后一个同名函数定义。
- 如果使用ExecuteFile代码加载的函数库中有匹配函数可用,则使用它。否则……
- 如果动作代码中有匹配函数,则使用。否则……
- 如果使用 LoadFunctionLibrary 代码加载的函数库中有匹配函数可用,则使用它。否则……
- 如果静态关联函数库中有匹配函数,则使用顶层关联函数库中的定义
所以特别是对于我的问题 - 最后写入的库文件中的匹配函数将在动作中调用时使用。 所以 - ReportEvent(Status, TestStep, ExpectedResult, ActualResult, OptionalLink) 在 LOC-50 和 ReportEvent(TestStep, ExpectedResult, ActualResult). 在 LOC -105
然后使用 LOC - 105 处的那个。