2014-02-11 4 views
1

Я использую Robot Framework с SwingLibrary для тестирования приложения на основе Java Swing. Поскольку я не привык к Python, а также не хочу настраивать среду Python, я решил пойти с автономной версией JAR Robot (текущая версия 2.8.4).Как настроить автономную банку Robot Framework с SwingLibrary?

Моя проблема заключается в настройке в сочетании с SwingLibrary (версия 1.8.0). Я не знаю, где разместить библиотеку таким образом, чтобы она узнавалась роботом.

До сих пор у меня есть следующий тестовый случай (mytest.txt):

*** Settings *** 
Library  SwingLibrary 

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

Я пытался с проставлением автономной банки в сочетании с тестом в папке, и создал одну вложенную папку (называется это 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 
+0

теперь я, наконец, получил это работает отдельно установка Jython и установка Robot Framework из источника (т.е. не используя автономную версию JAR). , было бы интересно, если бы кто-нибудь нашел решение для использования автономной версии, поскольку в документации явно указано, что 'java -Xbootclasspath/a: Lib/swinglibrary-1.8.0.jar: Lib/MyApp.jar -jar robotframework-2.8.4.jar mytest.txt' должен работать. – user3278695

+0

Какой javac/VM вы используете? bootclasspath нестандартен и реализован по-разному в разных javas. Обычно проще просто пропустить использование -jar в этих случаях. См. Мой ответ ниже для этой опции. –

ответ

1

Вы можете использовать автономную банку без опции -jar, позволяющую указать путь к классам стандартным образом. Основной класс для автономной баночки org.robotframework.RobotFramework, поэтому синтаксис будет

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

Чуть более многословным, но это стандарт и поэтому избегает любых oddnesses, вызванных использования нестандартных вариант -Xbootclasspath.

+0

это определенно работает отлично! Однако моя проблема была намного проще: поскольку я использую не-английскую версию ОС, путь к классам должен быть разделен символом «;» вместо ":". Я не думал об этом, когда копировал строку из документации Robot. Поэтому мой classpath просто искал не туда место для библиотек ... вот почему они не были найдены. – user3278695