如何从 运行 关键字 If 在 Robot Framework 中调用的关键字获取返回值?

How to get Returned value from a Keyword called under Run Keyword If in Robot Framework?

我在我的机器人测试套件中写了一个用于测试用例拆解的关键字。下面提到的是:

*** 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 其中 returns 一些值。 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} 没有错误也没有输出。

Run Keyword If 将 return 关键字的结果是 运行。因此,你会这样做:

${result}=    Run Keyword If    '${TEST STATUS}'=='FAIL'  readerrlines  ${ELEMENT}