【问题标题】:TestComplete - Incorrect Cross Reference ErrorTestComplete - 不正确的交叉引用错误
【发布时间】:2015-12-16 19:29:28
【问题描述】:

我在脚本中使用带有 JScript 代码的 TestComplete 11 - 没有关键字测试。

我收到一个不正确的交叉引用错误。我检查了引用单元的所有 USEUNIT 声明,它们不相互引用,但我突然得到这个错误。

前:

Unit DataCheck:
//USEUNIT Button
//USEUNIT Lots of other Units

Unit Button
//USEUNIT Input
//USEUNIT Map
//USEUNIT Utilities

错误: 语法错误 Button 和 DataCheck 单元相互引用。 JScript 单元中不允许交叉引用。

错误位置L 单位:“按钮” 第 4 行列:1

嗯.....第 4 行没有数据! 叹息

从 Button 中删除实用程序并没有错误,但是无法访问 Button 必不可少的功能。

有什么想法吗??

【问题讨论】:

    标签: testing automated-tests jscript testcomplete


    【解决方案1】:

    这意味着 Utilities 单元引用了 DataCheck 单元:
    Utilities -> DataCheck -> Button -> Utilities

    也有可能在这个链中有更多的单元:
    实用工具 -> [神秘单元A] -> [神秘单元B] -> DataCheck -> 按钮 -> 实用程序

    检查整个参考链。

    另外,您可以考虑将Script Extensions 用于库代码。

    【讨论】:

    • 好的。我在理解这个概念时遇到了一些麻烦。我在一个完全不同的单元中发现了有问题的功能。如果我将其移至 DataCheck,则没有错误。如果我将它移动到任何其他单元并添加对 DataCheck 的引用,则会出错。所以,如果我理解正确,流动的参考资料 > ExButton > DataCheck > Button > Utilities 是问题??? (ExButton 是违规函数的原始位置)
    • 是的,这是一个明确的循环引用情况。为避免这种情况,您需要拥有不引用任何其他单元的库单元(例如,在您的情况下为实用程序)。如果您有一些属于特定单元(例如 A)并且应该由实用程序单元使用的常量或构造,则需要将这些常量/构造移动到没有任何引用的新单元(例如 A_Utils)并从两者中引用它A和公用事业单位。这是一种很常见的情况,例如,在 C++ 中,您面临着相同的行为。
    • 非常感谢您的帮助!
    猜你喜欢
    • 2020-02-19
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2019-02-14
    相关资源
    最近更新 更多