Как определить, на каком устройстве iOS выполняются мои функциональные тесты? - PullRequest
0 голосов
/ 02 января 2012

В настоящее время у меня есть ряд функциональных тестов, написанных на javascript с использованием API UIAutomation от Apple.Тесты написаны для iPhone, но приложение также поддерживает iPad.

Чтобы продлить свои тесты для запуска на iPad, мне нужно внести некоторые изменения в код, но сначала мне нужно выяснить, какое устройство выполняет тесты.

Как сделатьОбнаружить, на каком устройстве / симуляторе выполняются тесты? , когда я запускаю тесты javascript из средства автоматизации.

Ответы [ 3 ]

1 голос
/ 17 февраля 2012

Следуйте документации, предоставленной здесь, вы получите всю информацию: https://developer.apple.com/library/ios/#documentation/ToolsLanguages/Reference/UIATargetClassReference/UIATargetClass/UIATargetClass.html

// Вот скрипт, который я использую для получения имени устройства, версии ОС, идентификатора пакета, цели и т. Д.

#import "tuneupjs/Utilities.js"
var target = UIATarget.localTarget();

var app_bundle_id = target.frontMostApp().bundleID();
UIALogger.logDebug("App Bundle Id : " + app_bundle_id);

if(app_bundle_id.strContains("ShazamDev"))
    UIALogger.logDebug("Running UIA Scripts for ShazamDev");

var device_name = target.name();
UIALogger.logDebug("Phone Name : " + target.name());

var device_model = target.model();
UIALogger.logDebug("Device Model: " + device_model);

//UIALogger.logDebug("System Name: " + target.systemName());

var ios_version = target.systemVersion();
UIALogger.logDebug("IOS Version: " + ios_version);
1 голос
/ 03 января 2012

UIATarget.localTarget (). Model () содержит информацию о том, на каком устройстве выполняются тесты.

Я обнаружил Алекс Воллмербиблиотека tuneup_js .Это позволяет в некоторой степени использовать независимый от устройства код.

например)

test("my test", function(target, app) {
  assertWindow({
    "navigationBar~iphone": {
      leftButton: { name: "Back" },
      rightButton: { name: "Done" }
    },
    "navigationBar~ipad": {
      leftButton: null,
      rightButton: { name: "Cancel" }
    },
  }); 
});

edit

В tuneup_js найдено следующее:

   /**
    * A convenience method for detecting that you're running on an iPad
    */
    isDeviceiPad: function() {
      return this.model().match(/^iPad/) !== null;
    },

    /**
     * A convenience method for detecting that you're running on an
     * iPhone or iPod touch
     */
    isDeviceiPhone: function() {
      return this.model().match(/^iPhone/) !== null;
    }

С их помощью я смогу написать код для конкретного устройства.

0 голосов
/ 17 февраля 2012

Вот код для метода StrContains в моем файле утилит

String.prototype.strContains = function(value, ignorecase) {
    if (ignorecase) {
        return (this.toLowerCase().indexOf(value.toString().toLowerCase()) != -1);
    }
    else {
        return this.indexOf(value) != -1;
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...