【问题标题】:How to get Returned value from a Keyword called under Run Keyword If in Robot Framework?如何从在机器人框架中运行关键字下调用的关键字中获取返回值?
【发布时间】:2015-09-23 19:20:37
【问题描述】:

我在我的机器人测试套件中为 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} 出现错误,但没有错误,也没有输出。

【问题讨论】:

    标签: python-2.7 robotframework


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2015-11-07
      • 2020-05-03
      • 2016-12-17
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 2014-03-07
      • 2017-08-09
      相关资源
      最近更新 更多