Robot Framework Collections - 列表比较问题

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 和其他网站上搜索了解决方案,但无法弄清楚为什么会发生这种情况。预先感谢您的支持

Bry*_*ley 5

您需要使用$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)