2017-03-17 90 views
1

對於測試,我做了2個關鍵字。總體思路是檢查一系列對象是否存在某個字段,字段名稱和消息。如果字段或字段名不存在,則關鍵字必須返回到forloop。該關鍵字必須返回${index}${result}。當我運行這個測試,它失敗的變量$ {結果}顯示爲${result}=None當測試通過,就變成${result}= [3, u'PASS']機器人框架關鍵字in for循環的返回值未通過

我覺得這東西在for循環

我試圖Run keyword and return做的${result}=但它沒有工作,我有點困惑在哪裏把${variables}和在哪裏使用它。 任何人都可以幫我解決這個問題嗎?

for循環:

${index}= | set variable | 0 
${result}= | Set Variable | not started 
: FOR | ${value} | IN RANGE | ${index} | 15 
     \ ${resultaat}= |"other keyword" | ${index} 
     \ ${index}= | "keyword add 1 to index" | ${index} 
     \ Return From Keyword if | '${result}'=='PASS' 
${testsuccess}= | Set Variable If | '${result}'=='PASS' | TEST GESLAAGD 

'其他關鍵字' 是:

[ARGS] ${index} 
${index}= | set variable | ${index} 
${check1}= <IS FIELD THERE> 
${result}= | set variable if | ${check1}==False | FIELD NOT THERE 
return from keyword if | ${check1}=False 
${check2}= <HAS FIELD VALUE X> 
${result}= | set variable if | ${check2}==False | WRONG VALUE 
return from keyword if | ${check2}=False 
${check3}= <IS MESSAGE X> 
${result}= | set variable if | ${check3}==False | FAIL 
${result}= | set variable if | ${check3}==True | PASS 
[RETURN] ${index} ${result} 

LOG: 關鍵字= '${result}'=='PASS' FOR = '${testsucces}=None'(但是,這是不對的,因爲條件已經得到滿足)

回答

1

Set Variable If將值設置爲None一旦沒有任何'其他'選項和條件不符合。見文件:http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Set%20Variable%20If

所以調整代碼:

${result} | Set Variable If | ${check3}==False | FAIL 
... | ${check3}==True | PASS 

如文檔中的示例。

+0

THX,爲您anwser,但我創造這個測試,並使用我的好路徑。所以結果總是得到滿足,因此沒有解決我的問題。我會將此添加到我的佇列中。但是當我運行測試時,關鍵字中設置了變量'$ {result}'=='PASS',但是在FORLOOP中它是None,所以關鍵字的值不會傳遞給FORLOOP – Shizzleliz

0

它工作時,我的return from keyword if

例如後把${result}

return from keyword if | ${check1}=False | ${result}