您可以链接导入。下面是一个这样的链和重用的例子。在此示例中,我们有一个 resources.robot 导入所有不同的 sub*.robot 文件。这是导入这些的唯一文件。
然后有两个testcases*.robot 文件继续导入resources.robot 并能够访问sub*.robot 关键字的内容。
resources.robot
*** Settings ***
Resource ../resources/sub1.robot
Resource ../resources/sub2.robot
Resource ../resources/sub1.robot
testcases1.robot
*** Settings ***
Resource ../resources/resources.robot
*** Test Cases ***
TC
No Operation
testcases2.robot
*** Settings ***
Resource ../resources/resources.robot
*** Test Cases ***
TC
No Operation
正如 cmets 中所讨论的,在 __init__.robot 文件中导入的任何关键字在该文件之外均不可用。这在Initialization files 的机器人框架用户指南部分中有明确描述。
也就是说,如果不希望在每个套件文件中包含主资源文件,那么另一种方法是在每个套件的开头使用侦听器加载资源文件。可以在此处找到有关侦听器的文档:Docs
一个新的例子:
AddResourceListener.py
from robot.libraries.BuiltIn import BuiltIn
class AddResourceListener(object):
ROBOT_LISTENER_API_VERSION = 2
def __init__(self):
pass
def start_suite(self, name, attributes):
BuiltIn().import_resource('${EXECDIR}/resource.robot')
resource.robot
*** Keywords ***
Resource Keyword
Log "Keyword Executed from Resource File"
TestCase.robot
*** Test Cases ***
TC
Resource Keyword
然后使用附加参数 --listener AddResourceListener.py 运行常规机器人命令,无论是否导入关键字,您都可以使用该关键字。