【发布时间】: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