Sto usando Robot Framework con SwingLibrary sutestare un'applicazione basata su Java Swing. Poiché non sono abituato a Python e non voglio configurare l'ambiente Python, ho deciso di utilizzare la versione JAR standalone di Robot (versione corrente 2.8.4).
Il mio problema è la configurazione in combinazione con SwingLibrary (versione 1.8.0). Non so dove mettere la libreria in modo tale che venga riconosciuta da Robot.
Finora, ho il seguente test case (mytest.txt):
*** Settings ***
Library SwingLibrary
*** Test Cases ***
MyTestCase
Start Application MyApp
Ho provato a inserire il barattolo autonomocongiunzione con il caso di test in una cartella e creato una sottocartella (chiamata Lib) dove ho inserito il JAR di SwingLibrary (e in seguito estratto anche il JAR). Ho aggiunto SwingLibrary e la mia applicazione al classpath, provando ad eseguire il robot nel seguente modo:
java -Xbootclasspath/a:Lib/swinglibrary-1.8.0.jar:Lib/MyApp.jar -jar robotframework-2.8.4.jar mytest.txt
e anche con
java -jar robotframework-2.8.4.jar mytest.txt
Ottengo sempre uno dei seguenti errori:
[ WARN ] Imported library "SwingLibrary" contains no keywords
==============================================================================
Mytest
==============================================================================
MyTestCase | FAIL |
No keyword with name "Start Application" found.
o
[ ERROR ] Error in file "mytest.txt": Importing test library "SwingLibrary" failed: ImportError: No module named SwingLibrary
risposte:
1 per risposta № 1Puoi usare il barattolo autonomo senza il -jaropzione, che consente di specificare il classpath nel modo standard. La classe principale per il jar standalone è org.robotframework.RobotFramework, quindi la sintassi sarebbe
java -cp robotframework-2.8.4.jar:Lib/swinglibrary-1.8.0.jar:Lib/MyApp.jar org.robotframework.RobotFramework
Leggermente più verboso ma standard e quindi evita qualsiasi stranezza causata dall'utilizzo dell'opzione -Xbootclasspath non standard.