2009-06-15 7 views
17

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

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

Прямо сейчас, у меня есть проблема с шагом 2 и 3, где я не могу сделать он автоматически (я могу сделать это с XCode через кнопку «Сборка и отладка». Это, однако, потребует ручного нажатия).

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

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

ответ

5

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

tell application "Xcode" to launch 

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

+0

спасибо за указатель. Мне удалось запустить XCode с помощью applescript. Прямо сейчас, я должен выяснить, что такое синтаксис, чтобы щелкнуть, выберите нужный проект и нажмите «build and go». Пройдет довольно много времени, прежде чем я выберу что-нибудь полезное. – chuan

+2

Не думайте об этом как о «нажимаете на сборку и идите». Вам нужно подумать о событиях. Если вы получите «щелчок» в своей голове, вы часто будете идти по неправильной дороге. Команда для сборки «build». Вы захотите провести много времени в «Открытом словаре» в редакторе Applescript, чтобы посмотреть, что предоставляет Xcode. Вам понадобятся команды типа 'build using build configuration с именем Release для первого проекта'. «запуск» - это то, что его запустит. «установить активную архитектуру» также может быть важным. Более сложный вопрос - как легко получить консольный вывод. –

+1

консольный вывод можно сделать так: в типа терминала следующие команды: По умолчанию запись com.apple.Xcode PBXGDBDebuggerLogToFile ДА По умолчанию запись com.apple.Xcode PBXGDBDebuggerLogFileName <путь к моему выходной файл GdB> При этом, Я пишу скрипт python для вызова сборки и запуска тестового приложения. Затем заберите тестовый журнал после тестирования. Btw, еще раз спасибо за указатели Applescript. Я попробую это сегодня. – chuan

1

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

+0

спасибо за помощь. xcodebuild будет просто строить двоичный файл, и он не будет загружать вновь скомпилированный двоичный файл в iphone. Если есть флаг/параметр, который мне нужно указать, чтобы он работал, я хотел бы узнать об этом. – chuan

0

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

правой кнопкой мыши цель, Add-> New Build синхронизма> New Run Script Построить Phase

16

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

Задача создания приложения 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> 

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

0

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

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

2

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

С уважением