Автоматизация теста XCode для IPhone - PullRequest
17 голосов
/ 15 июня 2009

Я бы хотел, чтобы мое тестовое приложение для iphone автоматически тестировалось на IPhone. Ниже приведены шаги, которые я хотел бы выполнить:

  1. компиляция, ссылка и код для подписи приложения iphone (Xcodebuild)
  2. загрузить недавно построенное приложение на iphone
  3. автоматически запускать загруженное приложение в iphone
  4. собрать результат с консоли gdb
  5. закрыть приложение

В настоящее время у меня есть проблема с шагами 2 и 3, когда я не могу сделать это автоматически (я могу сделать это из XCode с помощью кнопки «Build and Debug». Это, однако, потребует нажатия вручную).

Я провел некоторое исследование на автоматоре, и это не отвечает моей проблеме. Еще один вариант, о котором я думаю, - это скомпилировать приложение для симулятора iphone и запустить его оттуда, но я не уверен, насколько точным будет результат теста по сравнению с реальным устройством.

Я новичок в разработке для Mac / IPhone, возможно, у кого-то есть лучший способ проверить это. Любые отзывы и пожелания приветствуются. Спасибо.

Ответы [ 8 ]

16 голосов
/ 17 июня 2009

Раздел комментариев не обеспечивает хороший способ правильного отображения решения. Вот краткое изложение ответа.

Задача создания приложения для iPhone, загрузки и запуска процесса отладки на iPhone выполняется через AppleScript. Вот как выглядит AppleScript:

tell application "Xcode"
    open "Users:chuan:Desktop:iphone_manual_client:iphone_manual_client.xcodeproj"
    tell project "iphone_manual_client"
        clean
        build
        (* for some reasons, debug will hang even the debug process has completed. 
           The try block is created to suppress the AppleEvent timeout error 
         *)
        try
            debug
        end try
    end tell
    quit
end tell

AppleScript принимает «:» вместо «/» для разделения файлов и папок.

Вывод на консоль GDB можно получить, установив опцию GDB для записи в файл. это можно сделать, набрав в терминале следующую команду:

defaults write com.apple.Xcode PBXGDBDebuggerLogToFile YES 
defaults write com.apple.Xcode PBXGDBDebuggerLogFileName <path to my gdb output file>

Наконец, большое спасибо различным людям, которые помогли решить эту проблему.

5 голосов
/ 15 июня 2009

Инструмент, который вы, вероятно, хотите использовать для сборки и установки, - это Applescript. Что-то вроде:

tell application "Xcode" to launch

Я не притворяюсь, что это полный ответ; Есть еще много вещей, чтобы работать. Но я считаю, что Applescript станет одним из ваших ключевых инструментов.

2 голосов
/ 08 марта 2010

Проверьте iphone_testify , он хорошо работает с OCUnit и Google Toolbox для Mac, и я думаю, что возможно расширить его для чего-то вроде UISpec.

С уважением

2 голосов
/ 25 июля 2009

Проверьте UISpec http://code.google.com/p/uispec/

Это полная среда тестирования автоматизации, разрабатываемая для iphone.

1 голос
/ 16 июня 2009

Существует инструмент командной строки "xcodebuild", который можно вызвать, чтобы запустить сборку XCode без ее открытия. Есть флаги, которые вы можете использовать для установки целей и т. Д.

0 голосов
/ 07 декабря 2009

xcodebuild просто соберет двоичный файл и не загрузит только что скомпилированный двоичный файл на iphone.

на самом деле он может загружать (после подписания), но не слишком плохо ... Может быть, он может быть запущен с использованием GDB после подключения к цели, но как (IP ?, USB? USBBNET?)?

0 голосов
/ 16 июня 2009

Не могли бы вы добавить фазу сборки к цели, которая запускает скрипт для загрузки двоичного файла на iphone?

Щелкните правой кнопкой мыши цель, Добавить-> Новая фаза сборки-> Новый этап создания сценария запуска

0 голосов
/ 16 июня 2009

* * * * * тестирование д-ра Ника с помощью Ruby может помочь с некоторыми из этих

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...