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

时间:2015-07-06 15:08:20

标签: python-2.7 robotframework

我在我的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},没有错误也没有输出。

1 个答案:

答案 0 :(得分:4)

Run Keyword If将返回正在运行的关键字的结果。因此,你会这样做:

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