【问题标题】:RFT Behaving differently when run from a command lineRFT 从命令行运行时表现不同
【发布时间】:2014-12-05 23:11:41
【问题描述】:

以下代码从 RFT IDE 与命令行执行时的行为不同。

public void browserError() {
    startBrowser("");
    sleep (1);

    TestObject[] to = find(atDescendant(".class", "Html.HtmlBrowser"));

    System.out.println("Object found: " + to.length);
    logMessage(MessType.INFO, "Object found: " + to.length);

}

如果我从 RFT IDE 运行此代码时只打开一个浏览器,则“to = 1”的长度。但是,当我从命令行“to = 0”运行它时。

浏览器实例似乎永远不会被注册,所以它永远不会找到它。

更令人费解的是,这段代码在不同的机器上运行,所以我知道我的环境中有些东西搞砸了。我只是不知道它是什么。

提前致谢。

【问题讨论】:

    标签: rft


    【解决方案1】:

    我遇到的问题是由于我的机器使用的 JVM 与 RFT 使用的 JVM。在撰写本文时,RFT 在 Java 1.7 上运行,不支持 1.8。 RFT 使用 1.7 版执行所有脚本。但是,当我从命令行运行脚本时,它使用计算机的默认 JVM,在我的例子中是 1.8 版,所以当我执行 find 命令时,它看不到其他浏览器。

    感谢 IBM 印度的一位 RFT 开发人员 Prakash 指出这一点。

    所以这个故事的寓意是这样的,当从命令行执行时,你必须明确使用与 RFT 相同的 JVM,这意味着:

    %IBM_RATIONAL_RFT_ECLIPSE_DIR%\jdk\bin\java.exe ...(使用该目录中的 java.exe)
    对比
    java ...(使用机器默认的JVM)

    我希望这对将来的某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-11-03
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 2015-04-12
      相关资源
      最近更新 更多