I'm new to RobotFramework and I'm trying to do a simple test. Print an "Hello world" using Log keyword and get a value from a java class (I'm using jybot on Ride):
*** Settings ***
Library robot.MyTest
*** Test Cases ***
Test1
Log Hello World INFO
Get Value
*** Keywords ***
Get Value
Get Value
But when I run it, the test won't pass and it will give me this error:
Starting test: MyTest.Test1
20140817 01:00:15.683 : INFO : Hello world
20140817 01:00:15.798 : FAIL : Maximum limit of started keywords exceeded.
Ending test: MyTest.Test1
I've searched about it but I still have no clue on this.
Your test calls the keyword
Get Value
, which calls the keywordGet Value
. You've created an infinite recursion.Get Value
callsGet Value
which callsGet Value
which callsGet Value
which calls ...The best solution is the simplest one: don't create a keyword that calls itself. If there is already a keyword with a given name, don't create another one with the same name. While you can make it work having two with the same name, it will make your test cases harder to understand.
If you have another keyword called
Get Value
and you simply must have two keywords with the same name, you can give the fully qualified name so robot doesn't call the same keyword again. For example, if yourGet Value
is trying to call theGet Value
fromrobot.myTest
, call it like this: