2013-10-01 2 views
3

Я пытаюсь написать тест UIAutomation для приложения на основе местоположения. Вот мой код:UIAutomation работает в iOS 6, но не в iOS 7 (UIATarget.setLocationWithOptions)

var target = UIATarget.localTarget(); 
var mainWindow = target.frontMostApp().mainWindow(); 

// speed is in meters/sec 
var points = [ 
    {"location":{"latitude":46.783959176435,"longitude":23.542576152853}, "options":{"speed":32.33869934082}}, 
    {"location":{"latitude":46.784235069873,"longitude":23.542993452429}, "options":{"speed":33.44660949707}}, 
    {"location":{"latitude":46.784323173489,"longitude":23.543161503691}, "options":{"speed":33.76908493042}}, 
    {"location":{"latitude":46.784514430638,"longitude":23.54344429169}, "options":{"speed":34.434867858887}}, 
    {"location":{"latitude":46.784609053263,"longitude":23.543600872392}, "options":{"speed":34.673755645752}}, 
    {"location":{"latitude":46.784701914083,"longitude":23.54376055256}, "options":{"speed":34.920608520508}}, 
    {"location":{"latitude":46.784792299278,"longitude":23.543917345257}, "options":{"speed":34.939456939697}}, 
    {"location":{"latitude":46.784869569202,"longitude":23.54409146343}, "options":{"speed":34.837844848633}}, 
    {"location":{"latitude":46.784959115698,"longitude":23.544272081608}, "options":{"speed":34.80908203125}}, 
    {"location":{"latitude":46.785085476228,"longitude":23.544603009802}, "options":{"speed":34.722270965576}}, 
    {"location":{"latitude":46.785085476228,"longitude":23.544603009802}, "options":{"speed":0.0}} 
]; 

var driveDetectionStarted; 
for (var i = 0; i < points.length; i++){ 
    target.setLocationWithOptions(points[i].location,points[i].options); // send location update 
    target.delay(0.2); // sleep until next location update 
} 

target.delay(1); 
if (mainWindow.staticTexts()[0].value() == "Updates Received") { 
    driveDetectionStarted = true; 
} 
if (driveDetectionStarted) { 
    UIALogger.logPass("Location updates received as expected."); 
} else { 
    UIALogger.logFail("Location updates logic failed."); 
} 

приложение должно получать обновления местоположения, и если все в порядке, то он будет отображать UILabel с «Обновления Received» текст. Этот тест работает на iOS 6, но я не получаю обновления местоположения на iOS 7. Я пытался использовать устройства, так как метод target.delay (x) не работает в симуляторе с новым xcode. (Я тестировал, и он работал в старой версии xcode.)

Может ли кто-нибудь помочь мне запустить тест на iOS 7? Кто-нибудь сталкивается с той же проблемой? (Я планирую писать более сложные тесты, но если я не получаю обновления местоположения, то я просто не могу двигаться дальше.)

Спасибо

+0

Я подал радар с Apple. http://openradar.appspot.com/radar?id=4964878712307712 - радар # 17838015 - все еще не работает в бета-версиях iOS 8. – jmoody

+0

Попытка его на бета-версии (3,4,5) из 8.0 SDK и не работает. Разочарование. –

ответ

2

У меня та же проблема здесь. Методы setLocation() и setLocationWithOptions() не работают в iOS 7. В документации отсутствуют все методы для UIATarget (которые были доступны до iOS 7), и нет никакой записи для этих изменений в истории изменений.

Смежные вопросы