我是一名新用户,我没有找到解决我的脚本执行的疑问,在python中用Robot Framework编写。
当我在python编译器上执行它时脚本工作,但是当我在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 :(得分:3)
作为模块定义的一部分,您将从用户那里获得输入。导入模块时,无法使用标准输入流,因此会发生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)
答案 1 :(得分:1)
不使用库导入中的复杂路径,而是尝试使用pybot设置python路径,例如
pybot --pythonpath /path/to/libs/where/py/file/is
在测试套件文件中,仅使用名称导入它,例如没有.py后缀。
Library TestProva22
答案 2 :(得分:0)
RF默认将参数视为字符串。对于文字,您可以使用Entity
或变量首先使用Entity
包围它们。这样的事情应该有效:
${}