0

iPhone 앱의 테스트 케이스를 자동화하고 UIAutomation 클래스를 사용하고 있습니다. 나는 외부 스크립트를 실행한다고 믿는 performTaskWithPathArgumentsTimeout 함수를 사용하고 싶다. 그러나 나는 그것을 사용하지 않는다.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); 
}); 

악기 콘솔은 말한다 :

Error: launch path not accessible.

내가 인터넷에 검색보다 구체적으로 위의 기능에 매우 부족 UIAutomation 클래스의 자원이 될 것 같습니다 한 나는 다음과 같은 코드가 있습니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?

답변

4

호스트의 performTaskWithPathArgumentsTimeout() 메소드는 JavaScript가 아닌 쉘 프로그램을 실행하기위한 것입니다. 이 오류 메시지는 사용자가 지정한 경로에서 실행 가능한 명령을 찾을 수 없다는 것을 알려줍니다. 여기

는 그 방법으로 명령을 실행할 수있는 방법은 다음 /usr/bin 디렉토리에 사는 whoami 명령을 실행

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

합니다. 이 명령은 이미 사용하고있는 것처럼 사용자가 result.stdout으로 로그인 할 수있는 로그인 된 사용자 이름을 인쇄합니다.

나는 당신이 여기서 무엇을하려고하는지 잘 모르겠습니다. 실행하려는 스크립트의 모양 (fwasim/Desktop/registration.js)에서 다른 파일에있는 일부 등록 테스트를 실행하려고합니까? 그렇다면 더 쉬운 방법이 있습니다. 그냥이 입력 : 자바 스크립트가 실행되는 스크립트 파일의 디렉토리를 기준으로 것처럼 해당 파일을 가져올 시도

#import "fwasim/Desktop/registration.js" 

합니다. 외부 쉘 스크립트 나 그와 비슷한 것을 실행하려는 경우에만 performTaskWithPathArgumentsTimeout()이 필요합니다. UI 자동화 내에서 JavaScript를 실행하는 것이 아닙니다.

+0

답장을 보내 주셔서 감사합니다. 실제로'performTaskWithPathArgumentsTimeout()'함수를 작동시키고 어떻게 작동하는지 보려고했습니다. 이 함수가 셸 프로그램을 실행하는 데에만 사용될 수 있다는 것을 알지 못했습니다. 대신 코드를 실행하는 데 사용할 수 있다고 생각했습니다. 내 궁극적 인 목표는 테스트중인 앱을 종료해야하는 작업을 수행 할 UIAutomation에서 외부 스크립트를 실행하는 것이 었습니다. 예를 들어 테스트 케이스를 사용하려면 주소록에 새 연락처를 추가하고 앱 내에서 팝업을 확인해야합니다. 나는 스크립트가 이런 일을하기를 원했다. –

+0

좋아, 아래 코드를 수정 해 보았습니다. –

관련 문제