早上好,
我在RobotFramework文档中看到可以直接在python中创建关键字(http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#creating-user-keywords)
例如do_nothing函数.
def hello(name):
print "Hello, %s!" % name
def do_nothing():
pass
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但问题是必须在变量PYTHONPASS或包含该文件的目录中添加.
问题是测试可以在多台计算机上执行,这意味着应该在每台应该运行测试的计算机上修改此变量.
第二点,不幸的是我的文件将在几个目录中使用.
例如:
A
A/B
A/B/C <== use here
A/B/D
A/B/E <== use here
...
Run Code Online (Sandbox Code Playgroud)
一个......
例如,是否可以直接在A级添加一次功能?
或者是否可以在A目录级别的RobotFramework关键字部分添加一次,并直接在C和E机器人文件中引用它:
A/lib.robot:
*** Keywords ***
def hello(name):
print "Hello, %s!" % name
def do_nothing():
pass
C and E:
*** Settings ***
Resource ../../A/lib.robot
Run Code Online (Sandbox Code Playgroud)
您不能将基于python的关键字放在机器人文件中.您唯一的选择是将其放在.py文件中.导入该库有两种选择:通过文件路径导入它(例如:) Library the_library.py,或者按模块名称导入(例如:)Library the_library.
如果使用路径,则路径可以是相对路径或绝对路径.例如,如果您需要在A/B/C和A/B/E中使用库,则可以将文件放在A中,然后将其作为../../the_library.py引用.
如果按模块名称导入它,就像使用任何python模块一样,它必须在PYTHONPATH中.没有例外.如果按文件名导入,则必须指定实际指向文件的文件名.这是你唯一的两个选择.
最常见的解决方案是将文件放在使用它的所有计算机上的相同位置.然后,不必修改任何测试以在不同的机器上工作.这也意味着每台机器都可以定义PYTHONPATH相同.
底线非常简单:您的测试要么必须提供到库的正确路径,要么包含该库的文件夹必须在PYTHONPATH上.这是唯一的两个选择.
这完整记录在用户指南的标题为" 导入库"和" 配置库搜索库和其他扩展的位置"的部分中
| 归档时间: |
|
| 查看次数: |
1892 次 |
| 最近记录: |