1

我是一个新用户,我没有找到解决我的脚本执行问题的解决方案,用 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)
4

3 回答 3

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)
于 2013-10-02T17:11:22.730 回答
1

而不是在库导入中使用复杂路径尝试使用 pybot 设置 python 路径,例如

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

在测试套件文件中,仅使用名称导入它,例如不带 .py 后缀。

Library    TestProva22
于 2013-10-02T14:56:25.160 回答
1

RF 默认将参数视为字符串。对于文字,您可以先将它们括起来${}或使用变量Convert To Integer。像这样的东西应该工作:

${result} =  power   ${2}  ${4}
Should Be Equal As Integers  ${result}  16
于 2016-08-16T17:31:04.040 回答