我在我的Robot Testsuite中为Testcase拆解编写了一个关键字。以下提到:
*** Keyword ***
Result Evaluation
@{TRACEFILE} = evalVirdict ${value[2]}
:FOR ${ELEMENT} IN @{TRACEFILE}
\ Log ${ELEMENT}
\ Run Keyword if '${TEST STATUS}'=='FAIL' readerrlines ${ELEMENT}
在上面的关键字evalVirdict
是一个用python编写的函数,${value[2]}
来自我的测试用例和Run Keyword if '${TEST STATUS}' == 'FAIL' readerrlines ${ELEMENT}
部分。我正在调用另一个函数readerrlines
,它返回一些值。 readerrlines
函数定义如下:
def readerrlines(tracefile):
errVal = []
for line in list(open(tracefile)):
line = line.strip()
mat = re.match(r'.*\s.*\s+:\s\*+(.*\s)\s{1}', line)
if mat:
err = mat.group(1).strip()
errVal.append(err)
return errVal
在这里,我想知道如何从Run Keyword if '${TEST STATUS}' == 'FAIL' readerrlines ${ELEMENT}
中的readerrlines函数获取此返回值?
我已经尝试了Run Keyword if '${TEST STATUS}' == 'FAIL' @{errval} = readerrlines ${ELEMENT}
但是错误为非现有变量@ {errval}和Run Keyword if '${TEST STATUS}' == 'FAIL' Set Variable @{errval} = readerrlines ${ELEMENT}
,没有错误也没有输出。
答案 0 :(得分:4)
Run Keyword If
将返回正在运行的关键字的结果。因此,你会这样做:
${result}= Run Keyword If '${TEST STATUS}'=='FAIL' readerrlines ${ELEMENT}