2016-07-13 2 views
2

다른 변수의 상태에 따라 로봇 프레임 워크에서 FOR 루프를 실행하려고합니다.RobotFramework의 증가

${STATUS1}= Run Keyword And Return Status Should Be Equal As Strings ${CELLVALUE} ${EXPECTEDVALUE} 
    \ ${COUNT}= Set Variable If '${STATUS1}' == 'True' ${COUNT}+1 
    \ ... '${STATUS1}' == 'False' ${COUNT}+0 

하지만 얻을 모두가 내가 Run 키워드 If 대신 set varEvaluate를 사용하는 경우에도 '''0'+0'+0'+1 또는 유사하다, 나는 정수로 변환하는 시도했지만 아무 일도 발생하지 않습니다와 나는 그것이 정수 또는 숫자로 변환 할 수 없습니다. 어떤 제안? 미리 감사드립니다!

답변

5

${CELLVALUE}${EXPECTEDVALUE} 인 경우 ${COUNT}을 단순히 늘리려는 것 같습니다. 당신이 ${CELLVALUE}${EXPECTEDVALUE}이 같은 내부 타입 인 것을 알고 있다면 그 Set Variable if

로 아주 쉽게 수행 할 수 있습니다 (예 : 문자열이나 INT)로, 당신은 2.9 이상,이처럼 쓸 수있는 로봇 프레임 워크를 사용하고 :

${COUNT}= Set variable if $CELLVALUE == $EXPECTEDVALUE 
... ${COUNT+1} ${COUNT} 

${COUNT} 당신이 유형을 모르는 경우 그것을 값 ${0}

을 할당 할 수있는 정수 값으로 초기화되는 것으로 가정 유형을 보장 할 수 없거나 이전 버전의 로봇을 사용하고 있습니다. 물론

${COUNT}= Set variable if '''${CELLVALUE}''' == '''${EXPECTEDVALUE}'''  
... ${COUNT+1} ${COUNT} 

당신은 실행 키워드를 사용하고 예에서와 같이 상태를 반환하고 상태를 비교할 수 : 트리플 인용 문자열은 문자열 값을 강요합니다. 불필요한 추가 단계 인 것처럼 보이지만 실제 테스트에서는 의미가있을 수 있습니다.

요컨대,이 문제를 해결하기 위해 Set variable ifextended variable syntax을 사용할 수 있습니다.



주 1 : Set variable if하여, 두 값이 제공된다. 표현식이 참이면 첫 번째 값이 할당되고, 값이 거짓이면 두 번째 값이 할당됩니다. 두 번째 값은 원래 변수이므로 변경되지 않습니다. 두 번째 값을 제공하지 않으면 변수는 None으로 설정됩니다.

주 2 : 괄호 (내부 식 퍼팅 예 : ${COUNT+1}extended variable syntax 규정 4에서 설명

참고 3 :. 로봇 워크 2.9부터 변수 단순화 구문 $varname으로 평가 공간에서 사용할 . 로봇 변수 ${CELLVALUE}$CELLVALUE과 같은 파이썬 표현식으로 사용될 수 있습니다. 이것은 BuiltIn 라이브러리 문서의 Evaluating Expressions 섹션에 설명되어 있습니다.

+1

참고 4 : $ {COUNT}은 int 유형으로 초기화해야합니다 {COUNT} = 변수 $ {0}을 설정하면 해상도가 달라질 수 있습니다. – ombre42

+1

@ ombre42 : 좋은 지적입니다. 답변을 업데이트했습니다. 감사! –