2016-12-05 15 views
-1

ループが動作しないため、それらのいくつかは、====(ここでは、1つのファイルにし、連続した明確化のために分割されている)ロボットテストケース:私はコードを次している

*** Settings *** 
Documentation documentation for this test suite 
...    requires command line variables: IP 

resource resource/applicationcontrol.robot 
resource resource/clientmgr.robot 

Suite Setup applicationcontrol.Open connections 
Suite Teardown Close connections 
Test Setup Exit Current Running Apps 

*** Variables *** 
@{apps} 1stapp 2ndapp 3rdapp 4thapp 

動作しますが... ===============================

*** Keywords *** 
App For Port [Arguments] ${app} 
    :for ${port_num} IN 1 2 
    \ applicationcontrol.Launch application ${app} ${port_num} 
    \ ${status} Run Keyword And Return Status Check launching status ${app} ${port_num} 
    \ Continue For Loop If '${status}'=='False' 
    \ Run Keyword If '${status}'=='True' Add Success 
    \ Exit For Loop      <--Line in question 

Q:ループのための最も囲んを終了するか、すべてのループのネストExit For Loop

============================================= =========

Add Success 
    ${success_num} Evaluate ${success_num} + 1 

Ratio Statistics 
    ${fail_num} Evaluate ${total_num} - ${success_num} 
    Log Total: ${total_num}, Failed: <p style="color:red">${fail_num}</p> HTML 

Exit Current Running Apps 
    :for ${port_num} IN 1 2 
    \ Exit application ${port_num} 
    \ Check exit status ${port_num}  <--Line in question 

Q:Check exit status ${port_num}はなぜ

を理解していない...だけで第一ループのために実行されます=========== =========================

*** Test Cases *** 
Launch and exit multiple apps [Arguments] @{apps} 
    ${temp} Get Length ${apps} 
    Set Test Variable ${total_num} ${temp} 
    Set Test Variable ${success_num} 0 
    :for ${app} IN @{apps}   <--Line in question 
    \ App For Port ${app} 
    \ Exit Current Running Apps 
    Ratio Statistics       <--Line in question 

Q ::for ${app} IN @{apps}このForループは4回実行する必要がありますが、1回だけ実行します。

Q:Ratio Statisticsは実行されません。どうすればそれを実行させることができますか?

私は、インターネットまたはユーザーズガイドに答えを見つけることができません。前もって感謝します。

追加: リソース/ applicationcontrol.robot:Forループ

Exit application [Arguments] ${PORT} 
    ${RUNNING_RESPONSE} send cmd appsvc get_apps 
    ${RUNNING_APPS} response parameter ${RUNNING_RESPONSE} 
    Pass Execution If '${RUNNING_APPS}' == '${None}' No app running on ${PORT} 
    ${TARGET_APP} get target application ${RUNNING_APPS} ${PORT} 
    send cmd appsvc  exit_app ${TARGET_APP} 
+0

質問でテストを実行できません。 [最小限で完全で検証可能な例]を作成してください(http://stackoverflow.com/help/mcve) –

答えて

0

おかげでみんな、私は答えを見つけました。リソース/ applicationcontrol.robotで

Exit application [Arguments] ${PORT} 
    ${RUNNING_RESPONSE} send cmd appsvc get_apps 
    ${RUNNING_APPS} response parameter ${RUNNING_RESPONSE} 
    Pass Execution If '${RUNNING_APPS}' == '${None}' No app running on ${PORT} 
    ${TARGET_APP} get target application ${RUNNING_APPS} ${PORT} 
    send cmd appsvc  exit_app ${TARGET_APP} 

Pass Execution If文では、私はそれになりたいものです、そのキーワード、残りの問題ではなく、現在テストケースを終了します。

私のソリューションは、このキーワードの残りを新しい「ヘルパー」キーワードに置き換え、代わりにRun Keyword Unlessを使用して新しいキーワードを呼び出しています。

0

出口はループのための最も囲んを終了するか、すべてのループのネスト? ロボットにネストされたforループは存在しません。 ループを持つキーワードを呼び出すループを作成できます。 Forループ

チェック終了ステータス$ {port_numのが} @ {アプリケーション}の$ {アプリ}のためだけ 第一のために実行されます(あなたがしたい場合は、ほとんどが囲む)の電流ループを存在 とにかく、「Forループ終了」この必要があります4回実行しました 比率統計は決して実行されません。どのように実行することができますか?私たちは、これらの質問にあなたを助けるための十分な情報がありません。はい、それはあなたが説明する方法で動作するはずです... Brianのコメントを参照してください。

関連する問題