RobotFramework:在RobotFramework中定义Python关键字

RobotFramework:在RobotFramework中定义Python关键字,robotframework,Robotframework,早上好 我在RobotFramework文档中看到,可以直接在python中创建关键字 () 例如,dou_nothing函数 def hello(name): print "Hello, %s!" % name def do_nothing(): pass 它工作得很好,但问题是必须将其添加到变量PYTHONPASS或包含该文件的目录中 问题是测试可以在多台计算机上执行,这意味着应该在运行测试的每台计算机上修改此变量 第二点,不幸的是,我的文件将在几个目录中使用 例如: 不

早上好

我在RobotFramework文档中看到,可以直接在python中创建关键字 ()

例如,dou_nothing函数

def hello(name):
    print "Hello, %s!" % name

def do_nothing():
    pass
它工作得很好,但问题是必须将其添加到变量PYTHONPASS或包含该文件的目录中

问题是测试可以在多台计算机上执行,这意味着应该在运行测试的每台计算机上修改此变量

第二点,不幸的是,我的文件将在几个目录中使用

例如:


不能将基于python的关键字放入robot文件中。您唯一的选择是将其放入.py文件中。导入该库有两种选择:通过文件路径导入(例如:
library the_library.py
),或通过模块名称导入(例如:
library the_library

如果使用路径,则路径可以是相对路径或绝对路径。例如,如果需要在A/B/C和A/B/E中使用库,可以将文件放在A中,然后将其引用为../.\u library.py

如果您按模块名导入它,就像任何python模块一样,它必须位于PYTHONPATH中。没有例外。如果按文件名导入,则必须指定实际指向该文件的文件名。这是你唯一的两个选择

最常见的解决方案是将文件放在所有使用它的计算机上的相同位置。然后,不必修改测试以在不同的机器上工作。这也意味着每台机器都可以定义相同的PYTHONPATH

底线很简单:您的测试要么必须提供到库的正确路径,要么包含库的文件夹必须位于PYTHONPATH上。这是唯一的两个选择


这在《用户指南》的标题为和

谢谢的章节中有详细说明。解决方案:
Library.././lib/MyLibrary.py
非常有效:)
A
A/B
A/B/C   <== use here
A/B/D
A/B/E   <== use here
...
A/lib.robot:
*** Keywords ***
def hello(name):
    print "Hello, %s!" % name

def do_nothing():
    pass

C and E:
*** Settings ***
Resource    ../../A/lib.robot