导入资源 - 文件不存在(机器人框架)

时间:2015-07-07 10:39:26

标签: robotframework

您可以使用导入资源导入文件吗?

我需要能够运行相同的测试用例,但使用不同的变量才能运行不同语言的相同测试用例。我创建了不同的资源库来实现这一目标。

为了告诉我的测试用例,我运行一个关键字的变量文件只能导入该国家/地区的资源文件。

例如(在importAU文本中,它与AU Resource.txt共享相同的资源文件夹)

*** Keywords ***
 AU
  [Documentation]    Initializes the AU keyword variables
  Import Resource    ../variables/AU/Resource.txt

然后这是setup txt(打开浏览器并运行正确的文件)

*** Settings ***
Library           Selenium2Library
Resource          ../variables/US/Resource.txt
Resource          ../variables/AU/Resource.txt
Resource          ../variables/DE/Resource.txt

*** Variables ***
${COUNTRY}        AU //sets which country the file should run

*** Keywords ***
Homepage should be open
  Run Keyword    AU
  Set Selenium Speed    1 second
  Open Browser    ${url_staging}    chrome
  Set log level    TRACE
  Maximize Browser Window

我跑了这个,这是我得到的错误。

SETUP: setup.Homepage should be open
Start / End / Elapsed:  20150707 18:56:35.038 / 20150707 18:56:35.048 / 00:00:00.010
00:00:00.009 KEYWORD: BuiltIn.Run Keyword AU
Documentation:  

Executes the given keyword with the given arguments.
Start / End / Elapsed:  20150707 18:56:35.039 / 20150707 18:56:35.048 / 00:00:00.009
00:00:00.007 KEYWORD: importau.AU
Documentation:  

Initializes the AU keyword variables
Start / End / Elapsed:  20150707 18:56:35.040 / 20150707 18:56:35.047 / 00:00:00.007
00:00:00.006 KEYWORD: BuiltIn.Import Resource ../variables/AU/Resource.txt
Documentation:  

Imports a resource file with the given path.
Start / End / Elapsed:  20150707 18:56:35.041 / 20150707 18:56:35.047 / 00:00:00.006
18:56:35.046    FAIL    Resource file '..\variables\AU\Resource.txt' does not exist.

我是否对关键字做错了或关键字是否有问题?我知道这是一个已知的问题,如RobotFramework,但它应该是固定的。

以下是链接:http://code.google.com/p/robotframework/issues/detail?id=944

1 个答案:

答案 0 :(得分:1)

首先,你可以使用$ {CURDIR}和他的朋友。

  • $ {CURDIR}测试数据文件所在目录的绝对路径。此变量区分大小写。

  • $ {TEMPDIR}系统临时目录的绝对路径。在类UNIX系统中,这通常是/ tmp,在Windows c:\ Documents and Settings \\ Local Settings \ Temp。

  • $ {EXECDIR}从中开始测试执行的目录的绝对路径。

它们也可用于导入资源的声明。这可以为您节省一些问题。

我过去使用过不同的方法 - 通过定义一个全局的“必需”变量作为主项目文件夹,并在所有导入中使用它。

您可以在命令行中传递这样的变量(并强制您的用户使用批量包装器),或者如果您使用maven包装器,则可以将其放在那里。