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

Posted

技术标签:

【中文标题】导入资源 - 文件不存在(机器人框架)【英文标题】:Import Resource - File does not exist (Robot Framework) 【发布时间】:2015-09-24 19:20:31 【问题描述】:

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

我需要能够运行相同的测试用例但使用不同的变量才能以不同的语言运行相同的测试用例。为此,我创建了不同的资源库。

为了告诉我的测试用例哪个变量文件我运行了一个关键字来只导入那个国家的资源文件。

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

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

然后这是设置 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

【问题讨论】:

表示文件不存在,这是一个很明显的问题。您是否确认您在正确的目录中?也许您可以添加一些日志语句来验证您对相对路径的假设。 但是当我从设置文件中导入它们时,它会起作用吗?这是否意味着 Import Resource 上的路径应该与 txt 文件中的路径不同? 【参考方案1】:

首先,你可以得到使用 $CURDIR 和他的朋友们。

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

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

$EXECDIR 开始执行测试的目录的绝对路径。

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

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

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

【讨论】:

我使用了 $CURDIR 并且它有效!我没有在命令行中使用它,但我在 Import Resource 参数中使用了它。非常感谢!

以上是关于导入资源 - 文件不存在(机器人框架)的主要内容,如果未能解决你的问题,请参考以下文章

web页面找不到资源文件,报404,但是资源文件存在且路径没错

sqoop 导入错误 - 文件不存在:

导入 Access 时不存在文本文件规范

如何在nodejs Lambda中模拟不存在的文件导入

spring boot框架学习学前掌握之重要注解-通过注解方式读取外部资源配置文件2

包导入 - URI 的目标不存在