【问题标题】:Specify which resource file a variable is coming from指定变量来自哪个资源文件
【发布时间】:2015-03-11 21:42:25
【问题描述】:

Robot Framework 允许您导入多个包含同名关键字的资源文件,并使用它们的全名来调用它们以区分它们。例如,如果您的 Resource1.robot 具有一个名为“Test Keyword”的关键字来执行某些操作,而 Resource2.robot 也具有一个名为“Test Keyword”的关键字来执行不同的操作,则当您将这两个资源导入到测试套件,您的测试用例可以使用语法 Resource1.Test KeywordResource2.Test Keyword 访问这些关键字,具体取决于您想要的功能。

有没有办法用变量来做到这一点?我有两个资源文件 - Patient_records_resource.robot 和 Patient_search_resource.robot。 patient_records_resource 定义了一个变量${LAST NAME EDIT} | name=lname,而patient_search_resource 定义了一个同名变量${LAST NAME EDIT} | id=last-name。我遇到了一个测试用例导入这两个文件的问题,并且需要在不同的点访问这两个编辑框,并且始终选择错误的那个。我尝试过patient_search_resource.LAST NAME EDIT 之类的方法,但没有成功,但这正是我想要的。

我知道我可以重命名其中一个,但我想将其用作最后的解决方案。我团队中的每个人都确保在单个资源文件中创建唯一的变量名,但在整个测试套件中提供唯一的变量名以避免这些冲突会增加一些我们不希望的开销。

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    没有办法用变量来做到这一点。

    资源文件中的所有变量都具有相同的优先级。如果多个变量具有相同的名称,则只有 首先导入的变量 会被使用。 [source]

    您唯一的选择是:

    • 将包含两个导入的套件拆分为两个子套件,确保每个子套件仅导入其中一个资源。
    • 您不得已的解决方案:将您的变量名称修改为唯一的。

    我同意后一种选择会增加大量开销,但是,在 RF 改变它处理变量的方式之前,它可能是您的最佳选择。就我个人而言,我在所有变量前面加上资源文件独有的字母序列(例如,名为“Member_Central_Logging_Functions”的资源可能所有变量都以 MCLF 为前缀)。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 2021-01-08
      • 2021-10-12
      • 2023-03-05
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      相关资源
      最近更新 更多