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

时间:2015-03-09 21:18:23

标签: robotframework

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这样的事情没有成功,但这正是我正在寻找的。

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

1 个答案:

答案 0 :(得分:3)

无法用变量做到这一点。

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

您唯一的选择是:

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

我同意后一个选项增加了一些麻烦的开销,但是,在RF改变处理变量的方式之前,它可能是你最好的选择。就个人而言,我为所有变量添加前缀为资源文件唯一的字母序列(例如,名为&#34的资源;成员_Central_Logging_Functions"可能所有变量都以MCLF为前缀。)