0

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クラス、より具体的には上記の関数に関するリソースが非常に少ないようです。誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1

4

ホスト上のperformTaskWithPathArgumentsTimeout()メソッドは、JavaScript ではなくシェル プログラムを実行するためのものです。このエラー メッセージは、指定したパスに実行可能なコマンドが見つからないことを示しています。

そのメソッドでコマンドを実行する方法は次のとおりです。

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

whoamiこれにより、ディレクトリにあるコマンドが実行され/usr/binます。このコマンドは、すでに使用しているログイン済みのユーザー名を出力するだけresult.stdoutです。

しかし、ここで何をしようとしているのかよくわかりません。実行しようとしていたスクリプト ( fwasim/Desktop/registration.js) の外観から、別のファイルにあるいくつかの登録テストを実行しようとしているだけですか? もしそうなら、それを行うより簡単な方法があります。これを入力するだけです:

#import "fwasim/Desktop/registration.js"

これは、実行中のスクリプト ファイルのディレクトリに対して相対的であるかのように、その JavaScript ファイルをインポートしようとします。performTaskWithPathArgumentsTimeout()外部シェルスクリプトなどを実行しようとしている場合にのみ必要です。UI オートメーション内で JavaScript を実行するためのものではありません。

于 2012-05-14T02:15:03.107 に答える