如何从不同位置导入机器人文件

时间:2019-08-09 10:13:44

标签: python robotframework

我有一个这样的项目的路径。

Main project
'-Service
   '-Main service
      '- A.robot
      '- B.robot
'-resource.robot

当我运行B.robot时,我想在代码中设置文件时调用resource.robot

*** Settings ***
Documentation   Test building
Resource        resource.robot
Test Template   Send data to bus

我希望包含resoucre.robot,但返回的resource.robot不存在。

如何导入resouce.robot。

2 个答案:

答案 0 :(得分:2)

Resource        resource.robot

如果resource.robot与B.robot在同一(目录)级别,则可以工作...

Main project
'-Service
   '-Main service
      '- A.robot
      '- B.robot
      '-resource.robot

您可以提供完整的路径。

您可以只使用$ {CURDIR}

Resource        ${CURDIR}/../resource.robot

您也有https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#built-in-variables

答案 1 :(得分:1)

最简单的解决方案是使用相对于测试文件的路径。例如,在B.robot中,您将这样引用资源文件:

*** Settings ***
Resource  ../../resource.robot

机器人还将搜索模块搜索路径,因此您可以定义PYTHONPATH以将目录包含在资源文件中。

用户指南中有关locating resource files的内容是这样的:

  

如果以绝对格式给出路径,则直接使用。在其他情况下,首先相对于导入文件所在的目录搜索资源文件。如果在该文件中找不到该文件,则从Python的模块搜索路径中的目录中进行搜索。该路径可以包含变量,建议使用它们使路径独立于系统(例如$ {RESOURCES} /login_resources.robot或$ {RESOURCE_PATH})。此外,在Windows中,路径中的正斜杠(/)会自动更改为反斜杠()。