2013-09-19 3 views
1

Я новый пользователь, и я не нашел решения для сомнений в выполнении моего скрипта, написанного на python, в Robot Framework.Проверка функции python в Robot Framework

Скрипт работает, когда я исполню ее на питона компилятором, но когда я выполнить тестовый пример на Robot Framework, эта ошибка показала:

=========================================================================== 
TestProvaPower 
=========================================================================== 
TestPowerAngelo             | FAIL | 
No keyword with name 'power' found. 
--------------------------------------------------------------------------- 
TestProvaPower              | FAIL | 
1 critical test, 0 passed, 1 failed 
1 test total, 0 passed, 1 failed 
=========================================================================== 
Output: c:\users\user\appdata\local\temp\RIDEjtznzw.d\output.xml 

Я думаю, что эта ошибка отображается, поскольку необходимо пройти аргументы и параметры.

Пожалуйста, как я могу передать эти значения в Robot Framework?

Набор тестов:

** Settings ** 
Library   ../../../../../Users/User/workspace/TestAngelo18.09/TestProva22.py 

** Test Cases ** 
TestPowerAngelo 
    power base exponent 
    push ${base} ${exponent} 

В то время как мой Python скрипт:

base = input("Insert base") 
exponent =input("Insert exponent") 

def power(base,exponent): 
    result=base**exponent 
    print "%d to the power of %d is %d" %(base,exponent,result) 

power (base,exponent) 
+0

Не могли бы вы добавить комплект TestProvaPower к вопросу? Похоже, что вы не импортировали свой модуль python правильно. – mr2ert

+0

вы должны удалить все, кроме функции из библиотеки. первая, вторая и последняя строки вызываются только тогда, когда библиотека импортируется. – kontulai

ответ

1

Вместо того, чтобы использовать сложный путь в библиотеке импорта попробуйте установить путь питона с pybot например

pybot --pythonpath /path/to/libs/where/py/file/is 

И в файле тестового набора импортируйте его, используя только имя, например. без суффикса .py.

Library TestProva22 
+0

Спасибо, ребята, я удалил вход для переменных базы и экспоненты, потому что я использую Robotframework. – Ngiulino

2

В качестве части определения вашего модуля вы получаете ввод от пользователя. Когда модуль импортируется, вы не можете использовать стандартный поток ввода, поэтому возникает EOFError. Ниже представлена ​​измененная версия вашей библиотеки, которая по-прежнему проверяется посредством прямого выполнения.

def power(base, exponent): 
    result = base**exponent 
    return result 

if __name__ == '__main__': 
    base = input("Insert base") 
    exponent = input("Insert exponent") 
    result = power(base,exponent) 
    print "%d to the power of %d is %d" %(base, exponent, result) 
0

RF рассматривает аргументы как строки по умолчанию. Для литералов вы можете окружить их ${} или использовать переменные Convert To Integer. Что-то вроде этого должно работать:

${result} = power ${2} ${4} 
Should Be Equal As Integers ${result} 16 
Смежные вопросы