2016-12-05 1 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 

질문 : 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} 이유

을 이해하지 않습니다 ... 단지 1 루프 실행됩니다 =========== =========================

*** 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

질문에 테스트를 실행할 수 없습니다. [Minimal, Complete and Verifiable Example] (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 루프 종료"For 루프 전류 루프 (당신이 원하는 경우 가장 바깥 쪽)

확인 종료 상태 $ {port_num} @ IN $ {응용 프로그램}을위한 1 만 실행됩니다 {애플 리케이션을}이에게 존재해야 4 회 실행했습니다. 비율 통계가 실행되지 않습니다. 어떻게 처형 될 수 있습니까? 우리는 그러한 질문에 당신을 도울 충분한 정보가 없습니다. 예, 설명대로 작동해야합니다 ... Brian의 의견을 참조하십시오.