如何使用UIAutomation类的函数`performTaskWithPathArgumentsTimeout`?

时间:2012-05-09 22:43:38

标签: ios automated-tests functional-testing ios-ui-automation

我正在为iPhone应用程序自动化一些测试用例,我正在使用UIAutomation类。我想使用函数performTaskWithPathArgumentsTimeout,我认为它运行一些外部脚本。但是我无法使用它。我有以下代码:

#import "revision3.js"
#import "tuneup/tuneup.js"
test("script call", function(target, app){
var target = UIATarget.localTarget();
var host = target.host();
var result = host.performTaskWithPathArgumentsTimeout("fwasim/Desktop/registration.js, ["null"], 5);

UIALogger.logDebug("exitCode: " + result.exitCode);
UIALogger.logDebug("stdout: " + result.stdout);
UIALogger.logDebug("stderr: " + result.stderr);
});

仪器控制台说:

  

错误:无法访问启动路径。

我在互联网上搜索过,但UIAutomation类似乎有非常稀缺的资源,更具体地说是上述功能。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:4)

主机上的performTaskWithPathArgumentsTimeout()方法用于执行shell程序而不是JavaScript。该错误消息告诉您它无法在您给出的路径中找到可执行命令。

以下是使用该方法执行命令的方法:

var result = host.performTaskWithPathArgumentsTimeout("/usr/bin/whoami", [], 5);

执行whoami目录中的/usr/bin命令。该命令只打印出已登录的用户名,您可以使用result.stdout来获取该用户名。

但是,我不太确定你在这里要做什么。从您尝试执行的脚本(fwasim/Desktop/registration.js)的外观来看,您是否只是尝试运行一些不同文件中的注册测试?如果是这样,有一种更简单的方法。只需输入:

#import "fwasim/Desktop/registration.js"

尝试导入该JavaScript文件,就好像它是相对于正在运行的脚本文件的目录一样。如果您尝试执行外部shell脚本或类似的东西,则只需要performTaskWithPathArgumentsTimeout()。它不是在UI Automation中执行JavaScript。