nhr*_*cpt 1 python collections python-2.7 robotframework
我正在尝试比较 Robot Framework 中的两个相同列表。我正在使用的代码是:
List Test
Lists Should Be Equal @{List_Of_States_USA} @{List_Of_States_USA-Temp}
Run Code Online (Sandbox Code Playgroud)
并且列表与以下值相同:
@{List_Of_States_USA} Alabama Alaska American Samoa Arizona Arkansas California Colorado
... Connecticut Delaware District of Columbia Florida Georgia Guam Hawaii
... Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana
... Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri
... Montana National Nebraska Nevada New Hampshire New Jersey New Mexico
... New York North Carolina North Dakota Northern Mariana Islands Ohio Oklahoma Oregon
... Pennsylvania Puerto Rico Rhode Island South Carolina South Dakota Tennessee Texas
... Utah Vermont Virgin Islands Virginia Washington West Virginia Wisconsin
... Wyoming
Run Code Online (Sandbox Code Playgroud)
此测试失败并出现以下错误:
FAIL Keyword 'Collections.Lists Should Be Equal' expected 2 to 5 arguments, got 114.
Run Code Online (Sandbox Code Playgroud)
我已经在 SO 和其他网站上搜索了解决方案,但无法弄清楚为什么会发生这种情况。预先感谢您的支持
您需要使用$not @。当您使用 时@,机器人会将列表扩展为多个参数。
来自机器人框架用户指南:
当变量用作标量(如 ${EXAMPLE})时,其值将按原样使用。如果变量值是列表或类列表,则也可以用作列表变量,如@{EXAMPLE}。在这种情况下,各个列表项分别作为参数传入。
@{foo}考虑具有值“一”、“二”和“三”的列表的情况。在这种情况下,以下两个是相同的:
some keyword @{foo}
some keyword one two three
Run Code Online (Sandbox Code Playgroud)
您需要将您的声明更改为:
Lists Should Be Equal ${List_Of_States_USA} ${List_Of_States_USA-Temp}
Run Code Online (Sandbox Code Playgroud)