2015-07-06 1 views
1

Я написал ключевое слово для тестера Testcase в моем Robot Testsuite. Который упоминается ниже:Как получить Возвращенное значение из ключевого слова под названием «Запустить ключевое слово» Если в Robot Framework?

*** Keyword *** 
Result Evaluation 
@{TRACEFILE} = evalVirdict ${value[2]} 
:FOR ${ELEMENT} IN @{TRACEFILE} 
\ Log ${ELEMENT} 
\ Run Keyword if '${TEST STATUS}'=='FAIL' readerrlines ${ELEMENT} 

В вышеприведенном Keyword evalVirdict функция написана на Python и ${value[2]} исходит из моих Testcases и в 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 

Здесь я хочу знать, как получить это возвращаемое значение из readerrlines функций в Run Keyword if '${TEST STATUS}' == 'FAIL' readerrlines ${ELEMENT}?

Я пробовал Run Keyword if '${TEST STATUS}' == 'FAIL' @{errval} = readerrlines ${ELEMENT}, но получил ошибку как несуществующую переменную @ {errval}, а также Run Keyword if '${TEST STATUS}' == 'FAIL' Set Variable @{errval} = readerrlines ${ELEMENT} без ошибок и без вывода.

ответ

4

Run Keyword If вернет результат выполнения ключевого слова. Таким образом, вы бы сделали:

${result}= Run Keyword If '${TEST STATUS}'=='FAIL' readerrlines ${ELEMENT} 
Смежные вопросы