RobotFramework: Maximum limit of started keywords exceeded

早过忘川 提交于 2021-02-18 19:22:13

问题


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.


回答1:


Your test calls the keyword Get Value, which calls the keyword Get Value. You've created an infinite recursion. Get Value calls Get Value which calls Get Value which calls Get 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 your Get Value is trying to call the Get Value from robot.myTest, call it like this:

*** Keywords ***
Get Value
    robot.myTest.Get Value


来源:https://stackoverflow.com/questions/25345168/robotframework-maximum-limit-of-started-keywords-exceeded

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!