我正在为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类似乎有非常稀缺的资源,更具体地说是上述功能。谁能告诉我我做错了什么?
答案 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。