RobotFramework:超出已启动关键字的最大限制

时间:2014-08-17 00:09:53

标签: java testing jython robotframework atdd

我是RobotFramework的新手,我正在尝试做一个简单的测试。打印一个" Hello world"使用Log关键字并从java类中获取值(我在骑行时使用jybot):

*** Settings ***
Library           robot.MyTest

*** Test Cases ***
Test1
    Log    Hello World    INFO
    Get Value

*** Keywords ***
Get Value
    Get Value

但是当我运行它时,测试不会通过,它会给我这个错误:

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

我已经搜索过了,但我仍然不知道这个。

1 个答案:

答案 0 :(得分:7)

您的测试会调用关键字Get Value,该关键字会调用关键字Get Value。你创建了一个无限递归。 Get Value拨打Get Value,拨打Get Value,呼叫Get Value,呼叫... {/ p>

最好的解决方案是最简单的解决方案:不要创建自己调用的关键字。如果已存在具有给定名称的关键字,请不要创建具有相同名称的另一个关键字。虽然你可以让它有两个同名的工作,但它会让你的测试用例更难理解。

如果您有另一个名为Get Value的关键字,并且您只需要两个具有相同名称的关键字,则可以提供完全限定名称,以便机器人不会再次调用相同的关键字。例如,如果您的Get Value试图从Get Value拨打robot.myTest,请将其称为:

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