【问题标题】:RobotFramework: Maximum limit of started keywords exceededRobotFramework:超过启动关键字的最大限制
【发布时间】:2014-10-10 07:06:05
【问题描述】:

我是 RobotFramework 的新手,我正在尝试做一个简单的测试。使用 Log 关键字打印“Hello world”并从 java 类中获取值(我在 Ride 上使用 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

我已经搜索过了,但我仍然没有任何线索。

【问题讨论】:

    标签: java testing jython robotframework atdd


    【解决方案1】:

    您的测试调用关键字Get Value,它调用关键字Get Value。你已经创建了一个无限递归。 Get Value 调用 Get Value 调用 Get Value 调用 Get Value 调用 ...

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

    如果您有另一个名为 Get Value 的关键字,并且您必须有两个具有相同名称的关键字,您可以提供完全限定的名称,这样机器人就不会再次调用相同的关键字。例如,如果您的Get Value 试图从robot.myTest 调用Get Value,请这样调用:

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

    【讨论】:

    • 如果我不想创建另一个关键字,你是说我应该只有这个:***设置***库robot.MyTest***测试用例***Test1获取价值 *** 关键字 ***
    • @Lucas:我是说如果你要创建一个新关键字,不要给它与现有关键字相同的名称。如果robot.myTest 已经定义了一个名为Get Value 的关键字,则无需在测试用例文件中也创建一个同名关键字。
    • 感谢您的帮助。问题是,我不想再创造一个。我只想在 MyTest 类上使用它,但是当我尝试使用它时,ride 会抛出此异常:FAIL : No keyword with name 'Get Value' found。这就是我尝试在关键字部分创建的原因。我也收到此错误:导入测试库 'robot.MyTest' 失败:ImportError: No module named robot
    • @Lucas:那么您遇到的问题与您在这里提出的问题不同。虽然我成功地回答了这个问题,但听起来你真正的问题是你无法导入你的库。您应该将其作为一个单独的问题提出。
    • 你说得对,赞。我只需要找到一种方法来导入包含所有类的完整 jar。如果声明 java 类(例如 Library robot.MyTest \r\n Library robots.MyTest2 \r\n 等,我只能使用关键字)。
    猜你喜欢
    • 2021-02-21
    • 2018-03-14
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2021-06-08
    • 2017-10-01
    相关资源
    最近更新 更多