RobotFramework:超过启动关键字的最大限制
Posted
技术标签:
【中文标题】RobotFramework:超过启动关键字的最大限制【英文标题】:RobotFramework: Maximum limit of started keywords exceeded 【发布时间】: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
我已经搜索过了,但我仍然没有任何线索。
【问题讨论】:
【参考方案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 等,我只能使用关键字)。以上是关于RobotFramework:超过启动关键字的最大限制的主要内容,如果未能解决你的问题,请参考以下文章