2017-08-04 24 views
0

Robot Frameworkで2つの同一リストを比較しようとしています。ロボットフレームワークコレクション - リストの比較問題

List Test 
    Lists Should Be Equal @{List_Of_States_USA} @{List_Of_States_USA-Temp} 

とリストは以下の値と同一である:私は使用していたコードがある

@{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 

このテストでは、次のエラーで失敗します。私はSOで検索しました

FAIL Keyword 'Collections.Lists Should Be Equal' expected 2 to 5 arguments, got 114. 

解決策のための他のサイトを作成しましたが、なぜこれが起こったのか理解できませんでした。サポートの前にありがとう

答えて

3

$ではなく、@を使用する必要があります。 @を使用すると、ロボットはリストを複数の引数に展開します。 robot framework user's guideから

When a variable is used as a scalar like ${EXAMPLE}, its value will be used as-is. If a variable value is a list or list-like, it is also possible to use as a list variable like @{EXAMPLE}. In this case individual list items are passed in as arguments separately.

@{foo}が値「1」、「2」と「3」でリストされた場合を考えてみましょう。

some keyword @{foo} 
some keyword one two three 

あなたがこれまであなたの文を変更する必要があります:そのような次の二つが同一である場合などには、以下のように上記のブライアン・オークリーによって示唆されるように、そう

Lists Should Be Equal ${List_Of_States_USA} ${List_Of_States_USA-Temp} 
+0

ありがとうたくさんありがとう。それは働いた – nhrcpt

+0

こんにちはブライアン、こんにちは、この問題を確認し、できる場合は私をサポートします。 https://stackoverflow.com/questions/45602428/removing-trailing-comma-from-query-result-in-robot-framework私はまもなくこのコメントを削除します – nhrcpt

0

、私はテストを修正しました:

${L1} Create List @{List_Of_States_USA} 
${L2} Create List @{List_Of_States_USA-Temp} 
Lists Should Be Equal ${L1} ${L2} 

これでテストに合格しました。おかげで@ブライアン