【问题标题】:How to setup Robot Framework standalone jar with SwingLibrary?如何使用 SwingLibrary 设置 Robot Framework 独立 jar?
【发布时间】:2014-03-08 21:39:28
【问题描述】:

我正在使用带有 SwingLibrary 的 Robot Framework 来测试基于 Java Swing 的应用程序。由于我不习惯 Python,也不想设置 Python 环境,所以我决定使用 Robot 独立 JAR 版本(当前版本 2.8.4)。

我的问题是与 SwingLibrary(1.8.0 版)结合使用的设置。我不知道将库放在哪里才能被机器人识别。

到目前为止,我有以下测试用例(mytest.txt):

*** Settings ***
Library     SwingLibrary

*** Test Cases ***
MyTestCase
     Start Application     MyApp

我尝试将独立 jar 与测试用例一起放在一个文件夹中,并创建了一个子文件夹(称为 Lib),我在其中放置了 SwingLibrary JAR(后来还提取了 JAR)。 我将 SwingLibrary 以及我自己的应用程序添加到类路径中,尝试通过以下方式执行机器人:

java -Xbootclasspath/a:Lib/swinglibrary-1.8.0.jar:Lib/MyApp.jar -jar  robotframework-2.8.4.jar  mytest.txt

还有

java -jar robotframework-2.8.4.jar mytest.txt

我总是遇到以下错误之一:

[ WARN ] Imported library 'SwingLibrary' contains no keywords
==============================================================================
Mytest
==============================================================================
MyTestCase                                                           | FAIL |
No keyword with name 'Start Application' found.

[ ERROR ] Error in file 'mytest.txt': Importing test library 'SwingLibrary' failed: ImportError: No module named SwingLibrary

【问题讨论】:

  • 现在,我终于可以分别安装 Jython 和从 Source 安装 Robot Framework(即不使用独立的 JAR 版本)。不过,如果有人找到使用独立版本的解决方案会很有趣,因为在文档中明确指出 java -Xbootclasspath/a:Lib/swinglibrary-1.8.0.jar:Lib/MyApp.jar -jar robotframework-2.8.4.jar mytest.txt 应该可以工作。
  • 您使用的是哪个 javac/VM? bootclasspath 是非标准的,并且在不同的 java 中实现不同。在这些情况下,跳过使用 -jar 通常更容易。有关该选项,请参阅下面的答案。

标签: swing jar robotframework gui-testing


【解决方案1】:

您可以使用不带 -jar 选项的独立 jar,从而允许您以标准方式指定类路径。独立 jar 的主类是 org.robotframework.RobotFramework,所以语法是

java -cp robotframework-2.8.4.jar:Lib/swinglibrary-1.8.0.jar:Lib/MyApp.jar org.robotframework.RobotFramework

略显冗长,但它是标准的,因此可以避免使用非标准的 -Xbootclasspath 选项引起的任何异常情况。

【讨论】:

  • 这绝对可以正常工作!但是,我的问题要简单得多:因为我使用的是非英语操作系统版本,所以类路径必须用“;”分隔代替 ”:”。当我从 Robot 文档中复制该行时,我没有想到这一点。所以我的类路径只是在错误的地方寻找库......这就是为什么没有找到它们。
猜你喜欢
  • 2020-05-26
  • 2014-03-13
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多