指定变量来自哪个资源文件

Specify which resource file a variable is coming from

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 之类的东西但没有成功,但这正是我正在寻找的东西。

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

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

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

您唯一的选择是:

  • 将包含两个导入的套件拆分为两个子套件,确保每个子套件只导入其中一个资源。
  • 你最后的解决方案:将你的变量名修改为唯一的。

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